要用 Unicode 版本 Declare Function MoveFileW Lib "kernel32.dll" (ByVal lpExistingFileName As Long, ByVal lpNewFileName As Long) As LongSub RenameFile(ByVal sOldName As String, ByVal sNewName As String) MoveFileW StrPtr(sOldName), StrPtr(sNewName) End Sub
Tiger_Zhao的思路是对的,不过我也试过了,结果改完文件名后还是有乱码我首先将一个utf8的文件以二进制打开并按行分隔后赋予到DATA字符串数组中 Open App.path & "Nfilename.txt" For Binary As #1 ReDim DATA(LOF(1) - 1) ReDim tempData(LOF(1) - 1) Get #1, , tempData() Close #1 DATA = Split(StrConv(tempData, 64), vbCrLf)然后: MoveFileW StrPtr(sOldName1), StrPtr(DATA(0)) MoveFileW StrPtr(sOldName2), StrPtr(DATA(1))
Declare Function MoveFileW Lib "kernel32.dll" (ByVal lpExistingFileName As Long, ByVal lpNewFileName As Long) As LongSub RenameFile(ByVal sOldName As String, ByVal sNewName As String)
MoveFileW StrPtr(sOldName), StrPtr(sNewName)
End Sub
Tiger_Zhao的思路是对的,不过我也试过了,结果改完文件名后还是有乱码我首先将一个utf8的文件以二进制打开并按行分隔后赋予到DATA字符串数组中
Open App.path & "Nfilename.txt" For Binary As #1
ReDim DATA(LOF(1) - 1)
ReDim tempData(LOF(1) - 1)
Get #1, , tempData()
Close #1
DATA = Split(StrConv(tempData, 64), vbCrLf)然后:
MoveFileW StrPtr(sOldName1), StrPtr(DATA(0))
MoveFileW StrPtr(sOldName2), StrPtr(DATA(1))
结果还是有乱码
Open App.path & "Nfilename.txt" For Binary As #1
ReDim DATA(LOF(1) - 1)
ReDim tempData(LOF(1) - 1)
Get #1, , tempData()
Close #1'DATA = Split(StrConv(tempData, 64), vbCrLf) '不能这样处理,那应该怎么呢?