Ich durchlaufe alle Dateien in einem Verzeichnis rekursiv mit folgendem:
%Vor%Aber dies beinhaltet versteckte Dateien und Dateien in versteckten Verzeichnissen.
Wie filtere ich diese Dateien? Bei Bedarf kann ich mich auf Plattformen beschränken, auf denen versteckte Dateien und Verzeichnisse mit dem '.' Zeichen.
Nehmen wir an, Sie möchten Dateien ignorieren, die mit '.'
beginnen. Dies ist die Standardanzeige in Unix für eine versteckte Datei. Ich schlage vor, eine rekursive Funktion zu schreiben, um jede Datei zu besuchen. Im Pseudocode sieht das etwa so aus:
Dies vermeidet die Notwendigkeit, den gesamten Pfad einer Datei zu durchsuchen, um zu bestimmen, ob wir damit umgehen wollen oder nicht. Stattdessen überspringen wir einfach alle Verzeichnisse, die "versteckt" sind.
Ich denke auch an mehrere iterative Lösungen, wenn Sie das bevorzugen. Eine besteht darin, einen Stapel oder eine Warteschlange zu haben, um zu verfolgen, welches Verzeichnis als nächstes besucht werden soll. Im Grunde emuliert dies die rekursive Version mit Ihrer eigenen Datenstruktur. Wenn Sie bei der Analyse des vollständigen Pfads der Datei nicht weiterkommen, stellen Sie sicher, dass Sie den absoluten Pfad erhalten. Dies stellt sicher, dass Sie kein Verzeichnis mit einem Namen wie './' oder '../' finden, was Probleme beim Suchen nach einer versteckten Datei verursachen würde.
Tags und Links c++ boost boost-filesystem hidden-files