一、從Qt刪除文件夾裡面的文件
QString dirPath = "Path to directory"; // 文件夾路徑 QDir dir(dirPath); dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); // 過濾掉"."和".."目錄 QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); i++) { QFileInfo fileInfo = list.at(i); if (fileInfo.isFile()) { // 如果是文件,刪除 QFile file(fileInfo.filePath()); file.remove(); } else { // 如果是文件夾,遞歸刪除 removeDir(fileInfo.filePath()); } }
該代碼會遞歸遍歷指定文件夾內的所有文件和文件夾,並依次進行刪除操作。
二、Qt打開文件夾
QString dirPath = "Path to directory"; // 文件夾路徑 QDesktopServices::openUrl(QUrl::fromLocalFile(dirPath));
該代碼可以使用系統默認的程序打開指定文件夾。
三、Qt刪除文件夾下所有文件
QString dirPath = "Path to directory"; // 文件夾路徑 QDir dir(dirPath); dir.setFilter(QDir::Files); // 過濾掉非文件 foreach(QFileInfo fileInfo, dir.entryInfoList()) { QFile::remove(fileInfo.absoluteFilePath()); // 直接刪除 }
該代碼會刪除指定文件夾下的所有文件,不會刪除文件夾本身。
四、Qt刪除文件夾所有文件報錯
在使用刪除文件操作時,可能會遇到許可權不足的報錯,可以使用以下方法進行處理:
QString dirPath = "Path to directory"; // 文件夾路徑 QFileInfoList fileList; QDir dir(dirPath); fileList = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot, QDir::Name | QDir::DirsFirst); foreach(QFileInfo fileInfo, fileList) { if(fileInfo.isDir()) { // 如果是文件夾,遞歸刪除 removeDir(fileInfo.absoluteFilePath()); } else { // 如果是文件,直接刪除 QFile::remove(fileInfo.absoluteFilePath()); } } if(dir.rmdir(dirPath)) { // 如果文件夾內的所有文件都被刪除,則刪掉這個空文件夾 qDebug() << "Directory removed"; } else { qDebug() << "Directory remove failed:" << dirPath; }
該代碼會遞歸遍歷指定文件夾內的所有文件和文件夾,並進行刪除操作。如果文件夾內的所有文件都被刪除,則會刪除這個空文件夾。
五、Qt刪除文件操作
QString filePath = "Path to file"; // 文件路徑 QFile file(filePath); if (file.remove()) { // 刪除文件 qDebug() << "File removed"; } else { qDebug() << "File remove failed:" << filePath; }
該代碼可以刪除指定文件。
六、怎麼刪除上一層文件夾
可以使用以下代碼刪除指定文件夾:
QString dirPath = "Path to directory"; // 文件夾路徑 QDir dir(dirPath); dir.cdUp(); // 進入到上一級目錄 dir.rmdir(dirPath); // 刪除指定文件夾
七、相機怎麼刪除文件夾
相機刪除文件夾一般需要先打開相機的存儲卡,並在存儲卡內進行操作。可以使用以下代碼進行操作:
QString dirPath = "Path to directory in camera"; // 相機存儲卡內文件夾路徑 QFileInfoList dirInfoList = QDir(dirPath).entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); // 獲取所有子文件夾信息 foreach(QFileInfo dirInfo, dirInfoList) { QString subDirPath = dirInfo.absoluteFilePath(); QFileInfoList fileList = QDir(subDirPath).entryInfoList(QDir::Files); // 獲取子文件夾內所有文件信息 foreach(QFileInfo fileInfo, fileList) { QFile::remove(fileInfo.absoluteFilePath()); // 刪除每個文件 } QDir().rmdir(subDirPath); // 刪除空文件夾 }
該代碼會遞歸遍歷相機存儲卡指定文件夾內的所有文件和文件夾,並進行刪除操作。請注意,在刪除相機內文件時需要特別小心,避免誤刪所有文件。
八、Qt刪除文件夾的方法
上面介紹了多種刪除文件夾和文件的方法,可以根據不同的需求選擇不同的方法。
九、QT刪除文件夾幾天前下的文件夾
可以使用以下代碼刪除指定幾天前創建的文件夾:
QString dirPath = "Path to directory"; // 文件夾路徑 int days = 2; // 指定天數 QDateTime expiredTime = QDateTime::currentDateTime().addDays(-days); // 計算過期時間 QDir dir(dirPath); dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot); // 過濾掉"."和".."目錄 QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); i++) { QFileInfo fileInfo = list.at(i); if(fileInfo.created() < expiredTime) { // 如果創建時間早於過期時間,刪除文件夾 removeDir(fileInfo.absoluteFilePath()); } }
該代碼會遍歷指定文件夾內的所有文件夾,並刪除指定幾天前創建的文件夾。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192890.html