2016-02-29 94 views
5

我正在使用Dir根據標準選擇文件列表。 將這些存儲在字符串數組中。 然後遍歷數組並處理文件。如何使用Dir在VBA中使用unicode字符處理文件名?

如何處理unicode字符的文件名? 我試圖做strconv()但沒有幫助。

vfile = Dir(vCurrDir & vCrit, vbNormal) 'vCrit is something like *test* 

再後來我心底嘗試訪問這樣的文件屬性:

vfilename = vCurrDir & "\" & vfile 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
vDateMod = objFSO.GetFile(vfilename).datelastmodified 

在最後一行我得到一個錯誤文件找不到。只對具有unicode字符的文件名執行此操作。 還有一篇關於此的帖子:Working with Unicode file names in VBA (using Dir, FileSystemObject, etc.)但它並沒有解決Dir的問題。

我的例子: VBA(表)C:\我的試驗file.pdf的Unicode:C:\我的測試,file.pdf

(你不能在這裏看到的差別,但如果你複製粘貼他們到Notepad ++中,你會看到破折號是兩個文件的不同字符,VBA將unicode破折號字符轉換爲Windows區域破折號)

或者鏈接問題的示例: 3_Połish.txt )vs 3_Polish.txt(在VBA中)

+0

您是否嘗試在'vfilename'上添加手錶?顯示什麼? – ZwoRmi

+0

是的,當然,VBA正在將文件名轉換爲Windows語言環境:(你不能在這裏看到它,但是這兩個文件名之間的破折號是不同的,如果你複製粘貼到Notepad ++你將會看到我的意思)VBA(watch) c:\ my-test-file.pdf Unicode: c:\ my-test-file.pdf – Atti

+0

您是否嘗試過使用'fso.GetFolder(path)'? – ZwoRmi

回答

相關問題