指定されたディレクトリ内のファイルを全て削除する。
環境:QT5.5
リンク
http://doc.qt.io/qt-5/qdir.html
http://doc.qt.io/qt-5/qfileinfo.html
http://doc.qt.io/qt-5/qfileinfo.html
インクルードファイル
1 2 3 | #include <Qdir> #include <QFileInfo > #include <QFileInfoList > |
ファイルのみ削除
コード
1 2 3 4 5 6 7 8 9 10 11 | // ファイルを削除するディレクトリを指定 QDir dir("C:/ProgramData/test/"); // ディレクトリ内のファイルを取得 dir.setFilter(QDir::Files | QDir::NoDotAndDotDot ); QFileInfoList list = dir.entryInfoList(); // 取得したファイルを1つずつ削除する foreach (QFileInfo finfo, list) { QFile::remove(finfo.filePath()); } |
または、
コード
1 2 3 4 5 6 7 8 9 10 11 | // ファイルを削除するディレクトリを指定 QDir dir("C:/ProgramData/test/"); // ディレクトリ内のファイルを取得 dir.setFilter(QDir::Files | QDir::NoDotAndDotDot ); QFileInfoList list = dir.entryInfoList(); // 取得したファイルを1つずつ削除する for (int i=0; i<fileList.count(); i++) { QFile::remove(fileList.at(i).absoluteFilePath()); } |
ファイルとディレクトリを削除
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // ファイルを削除するディレクトリを指定 QDir dir("C:/ProgramData/test/"); // ディレクトリ内のファイルを取得 dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); QFileInfoList list = dir.entryInfoList(); // 取得したファイルとディレクトリを削除する for (int i=0; i<fileList.count(); i++) { if ( fileList.at(i).isFile() ) { if ( !dir.remove(fileList.at(i).fileName()) ) { // ファイル // Error処理 } } else if ( fileList.at(i).isDir() ) { // ディレクトリ QDir dirchild(fileList.at(i).absoluteFilePath()); if ( !dirchild.removeRecursively() ) { // Error処理 } } } |
コメント