25

Qt を使用してディレクトリ内のすべてのファイルを削除する必要があります。

ディレクトリ内のすべてのファイルには、拡張子「.txt」が付きます。

ディレクトリ自体を削除したくありません。

誰も私がこれを行う方法を知っていますか? 私はQDirを見てきましたが、運がありません。

4

8 に答える 8

5

QDir::entryList(QDir::Files) を呼び出してディレクトリ内のすべてのファイルのリストを取得し、「.txt」で終わる各 fileName に対して QDir::remove(fileName) を呼び出してファイルを削除します。

于 2013-02-07T16:35:11.577 に答える
1

良い方法で始めました。entryListを見て、もちろん必要な namefilter を渡します。

于 2013-02-07T15:44:03.327 に答える
0

これは私がそれを行う方法です:

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());
}
于 2013-02-13T13:33:30.963 に答える
0

rreeves のコードの他の変種:

QDir dir("/path/to/file");

dir.setNameFilters(QStringList() << "*.*");
dir.setFilter(QDir::Files);

for(const QString &dirFile: dir.entryList()) {
  dir.remove(dirFile);
}
于 2018-04-24T11:43:02.653 に答える
-3

これは、Qt を使用しなくても実現できます。そのためには、opendir、readdir、unlink、さらには rmdir が友達になります。使い方は簡単で、man ページを参照するだけです ;)。

于 2013-02-07T15:42:56.647 に答える