基本思想:
1.指定乙個目錄
2.找到當前目錄下的檔案(不包括資料夾,qdir可以進行篩選),存入qfileinfolist,然後按順序存入qtreewidgetitem,並新增至根節點
3.找到當前目錄下的第乙個資料夾,作為乙個新的根節點
4.重複2,3過程,直到沒有新的資料夾
至此遞迴過程完畢。
qfileinfolist fileviwer::allfile(qtreewidgetitem *root,qstring path, qstringlist filters) //引數為主函式中新增的item和路徑名
qfileinfolist file_list=dir.entryinfolist(qdir::files | qdir::hidden | qdir::nosymlinks);
qfileinfolist folder_list = dir.entryinfolist(qdir::dirs | qdir::nodotanddotdot); //獲取當前所有目錄
for(int i = 0; i != folder_list.size(); i++) //自動遞迴新增各目錄到上一級目錄
return file_list;
}
對於qtreewidget的新收穫在仔細學習完後繼續。
遞迴遍歷目錄
遞迴 乙個函式內部在其內部不呼叫其他函式,而是呼叫自身,類似迴圈 注,自己玩自己,防止死遞迴 使用遞迴來遍歷出乙個目錄中的所有檔案 import os def getalldirre path,sp 引數 路徑 返回值 none 完成功能,獲取呼叫者傳遞的路徑下的所有檔案 檔案 直接顯示,資料夾 二...
遞迴遍歷和刪除目錄
在踩過遞迴刪除資料夾的坑 刪了好多東西啊!之後,本人總結了一下採用遞迴遍歷目錄和遞迴刪除目錄。坑 的來歷 在遍歷目錄時,裡面會有 和 兩個目錄,分別指向上一級和再上一級的目錄,這兩個不能刪除,是指標,在windows下看不見,刪除檔案時,必須過濾掉這兩個,否則向上找檔案刪除會刪除所有檔案 我就是踩了...
遞迴遍歷02 棧模擬遍歷目錄(深度遍歷)
import os def getalldir path stack 當棧為空的時候處理棧 while len stack 0 從棧裡取資料 dirpath stack.pop filelist os.listdir dirpath 處理檔案 for filename in filelist fil...