Ich schreibe ein. Net WinForms auf und ständig zwischen DEBUG und RELEASE Konfigurationen wechseln und habe ein paar Dateien, die ich brauche, um beide Konfiguration zu können.Environment.CurrentDirectory vs System.IO.Directory.GetCurrentDirectory
Was ich dachte, war zu tun, um die Dateien in einem gemeinsamen Verzeichnis im BIN-Verzeichnis zu setzen, so dass es würde wie folgt aussehen:
MyProject/Bin/CommonFiles
MyProject/Bin/Debug
MyProject/Bin/Release
Und ich dachte über die Dateien zugreifen etwas entlang der Linien mit von: da
System.IO.Directory.GetParent(System.IO.Directory.GetCurrentDirectory).FullName
ist meine Frage, ob dies von dem, was ich gelesen habe, ist gefährlich, System.IO.Directory.GetCurrentDirectory
aufgrund der Benutzer ändern könnte ein neues aktuelles Verzeichnis in, sagen wir, eine geöffnete Datei Dialogfenster auswählen.
Soll ich eher etwas entlang der Linien von verwenden:
System.IO.Directory.GetParent(Environment.CurrentDirectory).FullName
OR gibt es einen noch besseren Weg zum /Bin
Ordner zu bekommen, so kann ich von dort oder einen allgemein akzeptierten Art und Weise/Ort bewegen zu Speichern von Dateien, die das Programm normalerweise erreichen muss, und Möglichkeit, diese leichter zu referenzieren (vielleicht etwas, das mit jeder Art von App und nicht nur mit WinForms funktioniert)?
Das bin-Verzeichnis ist Detail eine Implementierung des VS Build-System verwendet haben sollte . Da es unwahrscheinlich ist, dass Sie Ihr Projekt mit Quellcode an den Kunden versenden und Sie keine Dateien in c: \ program files \ bin speichern können, ist dies keine gute Vorgehensweise. Verwenden Sie% appdata% für beschreibbare Dateien, Ihr EXE-Verzeichnis oder% programdata% für schreibgeschützte Dateien. –
Danke @HansPassant ... Wie ich Christian unten gesagt habe, bin ich etwas zögerlich, sie ständig in den AppData-Ordner auf dem Computer jedes Benutzers zu kopieren, da viele Benutzer dieses Programm nur einmal verwenden müssen und es auf einem freigegebenen Laufwerk in meiner Organisation ist an diesem Punkt ... Irgendwelche Gedanken dazu? –