亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

遞歸訪問文件夾內的子文件夾文件

遞歸訪問文件夾內的子文件夾文件

我已編寫此代碼來訪問文件夾中的Excel文件:strPath="C:\Test\"Set objFso = CreateObject("Scripting.FileSystemObject")Set objFolder = objFso.GetFolder (strPath)Set objExcel= CreateObject("Excel.Application")objExcel.Visible= FalseFor Each objFile In objFolder.Files If objFso.GetExtensionName(objFile.Path) = "xls" Then現在,我必須創建一些子文件夾,并在其中放置一些.xls文件。我應該在代碼中做哪些修改以搜索主文件夾和所有其他子文件夾(子文件夾中也有一些文件夾)中的文件?
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

這實際上是一個很好解決的問題。遞歸意味著您創建了一個自引用函數(一個自我調用的函數)。在您的情況下,您可以使函數針對當前文件夾的每個子文件夾進行調用。


TraverseFolders objFso.GetFolder(strPath)


Function TraverseFolders(fldr)

  ' do stuff with the files in fldr here, or ...


  For Each sf In fldr.SubFolders

    TraverseFolders sf  '<- recurse here

  Next


  ' ... do stuff with the files in fldr here.

End Function


查看完整回答
反對 回復 2019-10-22
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

在腳本的開頭運行此命令,它將列出所有文件夾中的所有文件:


dir /S/B > AllFoldersAndFiles.txt

然后循環瀏覽文件列表。這對我有用。


遞歸vb有點棘手。


查看完整回答
反對 回復 2019-10-22
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

這是一種可能的方法(與FileSystemObject在某些情況下使用相比,提供了更好的性能),但由于不完整,無法在問題中使用。一方面,您不能只將命令直接放在VBScript中,而必須在其中添加一個cmd /c,因為dir和重定向是由提供的cmd.exe。另外,OP正在尋找具有特定擴展名的文件,該文件未反映在您的陳述中。

查看完整回答
反對 回復 2019-10-22
  • 3 回答
  • 0 關注
  • 894 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號