2014-06-27 29 views
2

我想從我的計算機中刪除所有文檔(.doc)文件,爲此我知道如何從文件夾獲取子文件夾列表,但不知道如何獲取從根目錄(例C :)使用vbscript獲取本地驅動器中的文件夾列表

subfoldersInFolder = folder.subFolder 

文件夾列表給出了一個文件夾的所有子文件夾。但據稱,我想從C :,

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

回答

3
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 

編輯:孫大信natarajСундар已要求我進入更詳細。

這是一個基本的For循環,它重複了SubFolders集合。 SubFolders屬性僅適用於Folder對象。您可以通過多種方式爲根獲得Folder對象。以下是兩個示例:

  1. 使用GetFolder()函數檢索根文件夾。
  2. 使用Drive對象的RootFolder屬性。

我在每個示例中都添加了WScript.Echo語句來演示如何使用objFolder變量。

+0

請提供適當的解釋給您的答案,以便OP和其他用戶更好地學習 –

0

drive對象沒有SubFolder屬性。它具有的是RootFolder屬性,使用它可以導航到根文件夾然後使用子文件夾屬性的根文件夾,獲取所有包含的文件夾,就像Mr @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 

您可能希望通過您無權訪問的文件夾跳過。因此,第一個聲明。

相關問題