私はディレクトリ内のすべてのフォルダやファイルをカウント/リスト/移動/カウントするvbscriptを書くためにいくつかの他の投稿に従ってきました。それには2つの制限があります。VBScriptを使用してフォルダとファイルの数を確認する
1)正しい番号が返されません(少なくともWindowsエクスプローラと一致しません)。 I.E.、私は自分のC:\を検索し、ウィンドウが+10,000(とサブフォルダーC:\ Windows、2,234を返す)のままになっているときに433のフォルダーを返します。
2)管理者としてスクリプトを実行していても、さまざまな場所にあるフォルダにアクセスすると、アクセス許可エラーが発生します。ここで
は私が小さいフォルダをテストするよう、でも多くのサブフォルダと、それが動作することを、簡単なコードです:
[Option Explicit
'on error resume next
Dim objFolder, objFSO, objSubFolder, iFolders
Set objFSO = CreateObject("Scripting.FileSystemObject")
iFolders = 0
Call CountFolders("C:\Windows")
Sub CountFolders(strPath)
Set objFolder = objFSO.GetFolder(strPath)
For Each objSubFolder In objFolder.SubFolders
iFolders = iFolders + 1
If Right(iFolders, 2) = "00" Then
IF MsgBox(iFolders & " folders found so far.", VBOKCancel) = 2 Then
Wscript.quit
End If
End If
Call CountFolders(objSubFolder.Path)
Next
End Sub
msgbox(iFolders)]
1 私は、ファイル・システム・オブジェクトがなくて何ができるかの限界を押しアム他の問題に取り組んでいますか?
おかげで
私は、C:\またはWindowsディレクトリ全体のような非常に大きなフォルダ構造がある場合にのみ、正しい数またはそれ以下の数を返します。また、エラーなくこれを行います。 – DrTarr