我使用此代码来获取目录的子文件夹:
Dim fo As Scripting.Folder
Set fo = fso.GetFolder(m_sFolder)
Dim nSubfolder As Scripting.Folder
For Each nSubfolder In fo.SubFolders
Debug.Print "Folder " & fo.Path & " has subfolder " & nSubfolder
Next
现在,当 m_sFolder 为“C:\Users\MyUser\Documents”时,一个子文件夹为“C:\Users\MyUser\Documents\Eigene Bilder”。
“Eigene Bilder”是 Windows 在德语中对文件夹“我的图片”的称呼。
但是,文件夹“C:\Users\MyUser\Documents”不包含“My Pictures”、“Pictures”或“Eigene Bilder”。
“我的图片”文件夹可以在这里找到:
C:\用户\我的用户\图片
谁能告诉我为什么 FSO 可能想告诉我这个目录“C:\Users\MyUser\Documents\Eigene Bilder”存在?
我完全困惑了。
这不是一个目录,而是一个连接(或重新解析)点 https://msdn.microsoft.com/en-us/library/windows/desktop/bb968829(v=vs.85).aspx这就像重定向到文件系统级别的另一个位置。
dir "C:\Users\MyUser\Documents\" /ad
从命令行将列出这些<JUNCTION>
标签(而不是<DIR>
).
不需要使用FSO,内置的文件系统函数将不包括这些:
Dim path As String: path = "C:\Users\MyUser\Documents\"
Dim dirn As String
dirn = Dir$(path, vbDirectory)
Do While dirn <> ""
If (GetAttr(path & dirn) And vbDirectory) = vbDirectory And dirn <> "." And dirn <> ".." Then
Debug.Print path & dirn
End If
dirn = Dir$()
Loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)