Die Zeile "If Getattr(path & DirName) And 16 Then" wird so aber nicht funktionieren ;)
Dateien mit Sonderzeichen können über Windows-Script korrekt ausgelesen werden. Hier mal LS-Funktionen für Ordner und Dateien, ggfs. reicht das schon:
Function getFiles_ByWFSO(folder_ As String) As Variant
Dim files(), i&, oFSO, oFolder, fileList, fo$
ReDim files(0)
fo = folder_
If right(folder_,1) <>"\" Then fo = fo + "\"
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(folder_)
Set fileList = oFolder.Files
ForAll objFile In fileList
ReDim preserve files(i)
files(i) = fo + objFile.Name
i = i + 1
End ForAll
getFiles_ByWFSO = files
End Function
Function getFolders_ByWFSO(folder_ As String) As Variant
Dim files(), i&, oFSO, oFolder, fo$
ReDim files(0)
fo = folder_
If right(folder_,1) <>"\" Then fo = fo + "\"
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(folder_).SubFolders
ForAll folder In oFolder
ReDim Preserve files(i)
files(i) = fo + folder.Name
i = i + 1
End ForAll
getFolders_ByWFSO = files
End Function