非遞歸算法遍歷目錄
.版本 2.支持庫 shell.支持庫 EDataStructure.支持庫 iext.程序集 窗口程序集1.子程序 _按鈕_瀏覽_被單擊編輯框_目錄.內容 = 瀏覽文件夾 (“選擇目錄:”, 假).子程序 枚舉文件.參數 目錄, 文本型.局部變量 隊列, 隊列.局部變量 節點, 節點.局部變量 節點1, 節點.局部變量 路徑, 文本型.局部變量 文件夾名稱, 文本型.局部變量 文件名, 文本型.局部變量 文件數目, 整數型節點.加入屬性 (“path”, 目錄)' 把初始目錄加到隊列隊列.壓入 (節點).判斷循環首 (隊列.是否為空 () = 假) ' 彈出隊列最前一個元素作為目錄,對該目錄進行文件夾枚舉和文件枚舉 隊列.彈出 (節點1) 節點1.取文本值 (“path”, 路徑) 路徑 = 選擇 (取文本右邊 (路徑, 1) ≠ “/”, 路徑 + “/”, 路徑) 文件夾名稱 = 尋找文件 (路徑 + “*.*”, #子目錄) .判斷循環首 (文件夾名稱 ≠ “”) .如果真 (文件夾名稱 ≠ “.” 且 文件夾名稱 ≠ “..”) ' 如果在當前目錄下找到了文件夾,則把該文件夾壓入到隊列,等待掃描該文件夾的下一級目錄和文件名 節點.修改屬性 (“path”, 路徑 + 文件夾名稱) 隊列.壓入 (節點) .如果真結束 文件夾名稱 = 尋找文件 (, #子目錄) .判斷循環尾 () 處理事件 () ' 尋找當前目錄的所有文件 文件名 = 尋找文件 (路徑 + “*.*”, ) .判斷循環首 (文件名 ≠ “”) 超級列表框1.插入表項 (, 路徑 + 文件名, , , , ) 文件數目 = 文件數目 + 1 標簽3.標題 = 到文本 (文件數目) 文件名 = 尋找文件 (, ) .判斷循環尾 ().判斷循環尾 ().子程序 _按鈕_枚舉_被單擊超級列表框1.全部刪除 ()枚舉文件 (編輯框_目錄.內容)信息框 (“完畢!”, 0, )
運行結果:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。
新聞熱點
疑難解答