寫的軟體需要進行資料夾的複製,開始不怎麼懂就找了個拷貝資料夾的**測試了一下,執行程式選擇了源目錄和目標目錄相同進行拷貝,結果悲劇了。因為是遞迴拷貝,導致資料夾被巢狀n層,軟體宕機,強制結束後,產生的資料夾有n多層,右鍵刪除說檔名太長無法刪除。網上找了很多方法都無法清理掉這個巢狀的資料夾,折磨了n久,終於想通,既然是qt生成的巢狀資料夾,為何不用qt再寫乙個刪除的程式呢?於是動手檢視help,找api函式說明,碼**。
//刪除資料夾bool mainwindow::deldir(const qstring &path)
qdir dir(path);
if(!dir.exists())
dir.setfilter(qdir::allentries | qdir::nodotanddotdot); //設定過濾
qfileinfolist filelist = dir.entryinfolist(); // 獲取所有的檔案資訊
foreach (qfileinfo file, filelist)else
} return dir.rmpath(dir.absolutepath()); // 刪除資料夾
}
這樣,新建乙個qfiledialog傳入檔案路徑就可以將資料夾徹底刪除,不用windows的右鍵刪除了。(在這之前還重啟系統去用u盤啟動pe系統來刪除都沒搞定,囧)
使用這個一定要小心,別寫錯刪除了重要的東西,哈哈!
Qt刪除檔案和資料夾
在使用電腦的時候,有時候我們需要刪除檔案和資料夾,手動操作乙個乙個的刪除就比較麻煩,有時候某個特定的檔案還刪除不了,寫乙個程式來實現刪除功能就方便很多,qt裡就有自帶的類可以方便的執行刪除功能,下面來看具體的示例 ifndef mainwindow h define mainwindow h inc...
QT刪除資料夾或者檔案
想用qt編一段刪除資料夾或檔案的 網上搜尋了很多,關於刪除資料夾都用遞迴刪除的方法,因為非空資料夾不能直接刪除,只能先清空資料夾裡的東西,才能執行刪除資料夾的操作。實際上qt5之後有更簡便的方法,就是用qdir removerecursively 詳細的可以查qt幫助文件。利用qdir remove...
qt刪除檔案或資料夾
想用qt編一段刪除資料夾或檔案的 網上搜尋了很多,關於刪除資料夾都用遞迴刪除的方法,因為非空資料夾不能直接刪除,只能先清空資料夾裡的東西,才能執行刪除資料夾的操作。實際上qt5之後有更簡便的方法,就是用qdir removerecursively 詳細的可以查qt幫助文件。利用qdir remove...