Ich arbeite an einer Anwendung für Windows 7 und führe einen routinemäßigen Verzeichniserstellungscode aus:
%Vor%Das Problem ist, dass die Directory.Exists-Zeile true zurückgibt, wenn ich das Verzeichnis über die Befehlszeile und den Windows Explorer nicht sehen kann. Dies ist kein Problem bei der Arbeit mit Windows XP. Gibt es etwas mit Windows 7, das mir nicht bekannt ist?
EDIT: Hinzugefügt Path.Combine
Bitte haben Sie Verständnis dafür, dass Windows Vista und Windows 7 die Virtualisierung zum Schutz solcher Ordner verwenden. Sie müssen daher überprüfen, ob sich myDir im virtuellen Speicher befindet,
C: \ Benutzer (Benutzername) \ AppData \ Local \ VirtualStore \ ProgramData p>
Ich weiß nicht, warum Windows 7 das tut, und ich habe keine Kopie zum Testen, aber Ihre Überprüfung auf Directory.Exists (Pfad) sollte nicht notwendig sein. Wenn Sie (tief) in Directory.CreateDirectory (Pfad) reflektieren, werden Sie feststellen, dass es intern prüft, ob das Verzeichnis bereits existiert, und es ist kein Problem, es mehrmals in einem Verzeichnis anzurufen, das bereits existiert. Der Aufruf von Directory.Exists (Pfad) ist überflüssig und unnötig.
Natürlich, wenn Windows 7 nicht das Directory ausführt. Existiert wie ich es erwarte, vielleicht macht es auch das nackte Directory.CreateDirectory nicht. In jedem Fall ist es eine Prüfung wert.
CommonApplicationData
wird normalerweise unter Windows 7 in <OSDrive>\ProgramData
aufgelöst. Dies ist ein versteckter Ordner. Wenn Sie den Explorer nicht bitten, versteckte Dateien und Ordner anzuzeigen (über die Ordneroptionen- & gt; Ansicht -Benutzeroberfläche), wird er im Explorer nicht angezeigt.
BEARBEITEN : Stellen Sie sicher, dass Sie das richtige Verzeichnis im Explorer anzeigen: Suchen Sie nach % PROGRAMDATA% , nicht C: \ ProgramData.