使用vbscript从本地驱动器获取文件夹列表

时间:2014-06-27 13:07:18

标签: vbscript

我想从我的计算机中删除所有文档(.doc)文件,因为我知道如何从文件夹中获取子文件夹列表,但不知道如何从根目录中获取文件夹列表(Ex C:)

subfoldersInFolder = folder.subFolder

提供文件夹的所有子文件夹。但据说我想要C:,

中的所有文件夹
 Set colDrives = objFSO.Drives
 For Each objDrive in colDrives
 objDrive.subFolder  //doesn't work
 Next

2 个答案:

答案 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对象。以下是两个例子:

  1. 使用GetFolder()功能检索根文件夹。
  2. 使用RootFolder对象的Drive属性。
  3. 我在每个示例中添加了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

您可能想要跳过您无权访问的文件夹。因此,第一个声明。