Wie kann ich versteckte Dateien (und Dateien in versteckten Verzeichnissen) mit Boost Dateisystem ignorieren?

8

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.

    
Soverman 04.10.2012, 20:45
quelle

2 Antworten

5

Leider scheint es keinen plattformübergreifenden Umgang mit "versteckt" zu geben. Das Folgende funktioniert auf Unix-ähnlichen Plattformen:

Definieren Sie zuerst:

%Vor%

Dann werden die Dateien zu:

%Vor%     
Soverman 05.10.2012, 00:31
quelle
1

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:

%Vor%

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.

    
Code-Apprentice 05.10.2012 00:39
quelle