NTFS montiert Ordner in C # Wie zu erkennen?
Frage
Es war einmal eine Zeit, die ich lesen, wie Sie programmatisch für angebracht NTFS-Ordner erkennen (können zyklische Rekursion verursachen, wenn sie durch die Ordner suchen). Jetzt kann ich nicht finden den Link .. Wer weiß, wie dies zu tun?
Die Montage I in Erfassungs interessiert bin, ist, wenn ein Ordner in einen anderen Ordner angebracht ist.
Lösung
Ich nehme an, Sie bedeuten eine NTFS-Übergang ? Es gibt eine nicht verwalteten API die reparse zu erhalten Punkt, die Sie dann müssen verhören sehen, ob es tatsächlich eine Kreuzung ist. Das ist alles erhältlich über P / Invoke , natürlich.
Aber die meisten Leute nur (1) sucht ReparsePoint auf der Liste der zurück von DirectoryInfo.GetDirectories .
(1) Beachten Sie, dass eine NTFS-Junction ist eine bestimmte Art von Analysepunkt , aber nicht die einzigen. Symbolische Links, Hard-Links, (2) und alle anderen benutzerdefinierten Daten sind auch Analysepunkte.
(2) Whoops. Hard-Links sind nicht Analysepunkte, sie nur Standard-Verzeichniseinträge sind auf die Zeige gleiche Datei . Dank Reuben für mich auf, dass zu korrigieren.
Andere Tipps
Tun Sie dies über WMI. Siehe Beispiel unter: http://msdn.microsoft.com /en-us/library/aa393244(VS.85).aspx
Oder versuchen Sie diesen Beispielcode, die mit