Qt刪除資料夾

2022-02-17 11:58:30 字數 758 閱讀 9592

寫的軟體需要進行資料夾的複製,開始不怎麼懂就找了個拷貝資料夾的**測試了一下,執行程式選擇了源目錄和目標目錄相同進行拷貝,結果悲劇了。因為是遞迴拷貝,導致資料夾被巢狀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...