一、從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-hk/n/192890.html
微信掃一掃
支付寶掃一掃