我正在尝试在 Windows 中列出目录的内容。一切都按预期工作,但是当我尝试获取文件的文件大小时(Debug.Print FileLen(filepath & filename)
使用该函数,FileLen()
我在第二个文件上收到错误 53,因为它的名称中有一个 unicode 字符(全角数字符号 U+FF03)。任何想法如何处理?
目录内容c:\Z\Test\
:
1#.txt
2#.txt
请注意,第一个文件有一个“普通”数字符号,第二个文件名有一个全角数字符号(U+FF03)。这里的 VBA 代码在没有第二个Debug.Print
.
Sub ListFiles()
Dim filename As String
Dim filepath As String
filepath = "c:\Z\Test\"
filename = Dir(filepath)
Do While filename <> ""
Debug.Print filename
Debug.Print FileLen(filepath & filename)
filename = Dir()
Loop
End Sub
请尝试下一个方法。VBScript 对象能够处理文件名中的非 ASCII 字符:
Sub ListFilesNonASCIIName()
Dim FSOLibrary As Object, fldObj As Object, fsoFile As Object
Dim foldPath As String
Set FSOLibrary = CreateObject("Scripting.FileSystemObject")
foldPath = "c:\Z\Test\"
Set fldObj = FSOLibrary.GetFolder(foldPath)
For Each fsoFile In fldObj.files
Debug.Print fsoFile.Name, fsoFile.Size
Next
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句