Ich muss rekursiv alle Dateien aus dem Verzeichnis und seinem Unterverzeichnis abrufen, aber mehrere Verzeichnisse ausschließen. Ich kenne ihre Namen. Ist es möglich mit boost :: filesystem :: recursive_directory_iterator zu arbeiten?boost :: filesystem :: recursive_directory_iterator mit Filter
11
A
Antwort
19
Ja, während Verzeichnisse iterieren, die Sie für die Namen auf der Ausschlussliste testen und verwenden Sie das no_push()
Mitglied der rekursive Iterator es zu verhindern, dass der in ein solches Verzeichnis, so etwas wie:
void selective_search(const path &search_here, const std::string &exclude_this_directory)
{
using namespace boost::filesystem;
recursive_directory_iterator dir(search_here), end;
while (dir != end)
{
// make sure we don't recurse into certain directories
// note: maybe check for is_directory() here as well...
if (dir->path().filename() == exclude_this_directory)
{
dir.no_push(); // don't recurse into this directory.
}
// do other stuff here.
++dir;
}
}
Verwandte Themen
- 1. boost :: filesystem copy_file mit überschreiben
- 2. recursive_directory_iterator löst Ausnahme aus
- 3. boost :: filesystem relative Pfad
- 4. Wo ist boost :: filesystem :: last_write_time?
- 5. Verwendung von Umgebungsvariablen mit Boost-Filesystem
- 6. Erweitern des Benutzerpfads mit boost :: filesystem
- 7. Absoluter Pfad mit boost :: filesystem :: Pfad
- 8. Anhängen an boost :: filesystem :: pfad
- 9. Fehler System: 9: Bad Dateideskriptor (boost :: filesystem)
- 10. Warum gibt es kein boost :: filesystem :: move_file?
- 11. C++: Wie ignoriere ich den ersten Verzeichnispfad beim Vergleich von Pfaden in boost :: filesystem?
- 12. Welche Berechtigungen sind erforderlich, um boost :: filesystem :: last_write_time erfolgreich auszuführen?
- 13. fflush oder sync brauchen nach boost :: filesystem :: copy?
- 14. Clear HTML5 Filesystem API
- 15. HTML5 Filesystem API
- 16. Get FileSystem Einschränkungen
- 17. Filesystem-basierter Web-Inhalt
- 18. Zip FileSystem in Golang
- 19. Mocking mit Boost-:: Test
- 20. Ungültiger geräteübergreifender Verbindungsfehler mit Boost-Dateisystem
- 21. Warum `boost :: filesystem :: exists` gibt false zurück, wenn eine Datei existiert? Hier
- 22. Fragen über mein erstes Programm mit Boost-Bibliotheken (Ausnahmen, langer Pfad)
- 23. Filesystem Watcher und große Dateien
- 24. Mit 'boost :: system :: error_code' in C++
- 25. Wie man ein boost :: filesystem :: directory_iterator in ein const Zeichen umwandelt *
- 26. Warum gibt boost :: filesystem :: path :: string() als Wert unter Windows und als Referenz unter POSIX zurück?
- 27. -Boost mit Cmake auf Linux (Ubuntu)
- 28. Warum steigern tut :: filesystem :: path einen Pfad zurückzukehren statt String
- 29. Probleme mit boost :: ptr_vector und boost :: jede
- 30. Wrap boost :: optional mit boost :: Python
ist Es ist möglich, das Verzeichnis basierend auf Symlink zu filtern. Ich möchte nicht in der Symlink-Datei suchen – user765443