Qt を使用してディレクトリ内のすべてのファイルを削除する必要があります。
ディレクトリ内のすべてのファイルには、拡張子「.txt」が付きます。
ディレクトリ自体を削除したくありません。
誰も私がこれを行う方法を知っていますか? 私はQDirを見てきましたが、運がありません。
QDir::entryList(QDir::Files) を呼び出してディレクトリ内のすべてのファイルのリストを取得し、「.txt」で終わる各 fileName に対して QDir::remove(fileName) を呼び出してファイルを削除します。
良い方法で始めました。entryListを見て、もちろん必要な namefilter を渡します。
これは私がそれを行う方法です:
QString path = "name-of-directory";
QDir dir(path);
dir.setNameFilters(QStringList() << "*.txt");
dir.setFilters(QDir::Files);
while(dir.entryList().size() > 0){
dir.remove(dir.entryList().first());
}
rreeves のコードの他の変種:
QDir dir("/path/to/file");
dir.setNameFilters(QStringList() << "*.*");
dir.setFilter(QDir::Files);
for(const QString &dirFile: dir.entryList()) {
dir.remove(dirFile);
}
これは、Qt を使用しなくても実現できます。そのためには、opendir、readdir、unlink、さらには rmdir が友達になります。使い方は簡単で、man ページを参照するだけです ;)。