我想从我的计算机中删除所有文档(.doc)文件,因为我知道如何从文件夹中获取子文件夹列表,但不知道如何从根目录中获取文件夹列表(Ex C:)
subfoldersInFolder = folder.subFolder
提供文件夹的所有子文件夹。但据说我想要C:,
中的所有文件夹 Set colDrives = objFSO.Drives
For Each objDrive in colDrives
objDrive.subFolder //doesn't work
Next
答案 0 :(得分:4)
For Each objFolder In objFSO.GetFolder("C:\").SubFolders
WScript.Echo objFolder.Path
Next
' or...
For Each objFolder In objFSO.GetDrive("C:").RootFolder.SubFolders
WScript.Echo objFolder.Path
Next
编辑:sundarnatarajСундар要求我详细介绍。
这是一个迭代For
集合的基本SubFolders
循环。 SubFolders
属性仅适用于Folder
对象。您可以通过多种方式获取根目录的Folder
对象。以下是两个例子:
GetFolder()
功能检索根文件夹。RootFolder
对象的Drive
属性。我在每个示例中添加了WScript.Echo
语句,以演示objFolder
变量的使用。
答案 1 :(得分:0)
drive对象没有SubFolder属性。它具有RootFolder属性,您可以使用该属性导航到根文件夹,然后使用文件夹对象的 SubFolder 属性,获取所有像@Bond先生提到的那样包含文件夹。 但是,如果您想遍历所有驱动器的所有文件夹,则可以执行此操作
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = FSO.Drives
For Each objDrive in colDrives
For Each objFolder In FSO.GetFolder(objDrive.RootFolder).SubFolders
For Each subfolder in objFolder.SubFolders
WScript.Echo subfolder.Size
Next
Next
您可能想要跳过您无权访问的文件夹。因此,第一个声明。