In meiner C# -Anwendung habe ich einen benutzerdefinierten Konfigurationsabschnitt, um zu bestimmen, wo bestimmte Dateien gespeichert und abgerufen werden sollen. Jedoch ist die Standardposition für diese ist in dem Verzeichnis c: \ Programdata-Verzeichnis und wir darauf zugreifen, indemSo legen Sie einen speziellen Windows-Ordner in der Konfigurationsdatei ab
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
Wie kann ich das Verzeichnis in meiner config-Datei vorab auszufüllen, ohne den rohen String zu schreiben zu haben? Es könnte in einigen Fällen auch ein anderer spezieller Ordner sein.
Im Grunde ist es ein Konfigurationselement, das wie folgt aussieht:
für Konfigurationsprofile für ein Produkt jedoch im Laufe der verschiedenen Versionen, das Verzeichnis verschoben wurde um<searchpath path="" priority="" isfullpath=""/>
Jedem von ihnen ist ein Weg zu suchen, aber aus Gründen der Abwärtskompatibilität muss ich immer noch die älteren Pfade durchsuchen, wenn ich sie nicht in den neueren Pfaden finden kann.
Zum Beispiel muss ich im Produktinstallationsverzeichnis dann das ProgramData-Verzeichnis suchen, da unsere neueste Version es in das aktuelle Produktinstallationsverzeichnis verschoben hat, aber unsere ältere Version speicherte es im ProgramData-Verzeichnis.
<appSettings>
<add key="programData" value="" />
</appSettings>
und dann in der Anwendung, eine statische Klasse bauen, die den Weg zum Abrufen verwendet wird:
Sie sagen also, Sie ziehen lieber den Wert aus der Konfigurationsdatei, aber es ist möglich, dass es überschrieben werden kann (d. H. Von Hand gesetzt)? –
Möchten Sie verschiedene 'SpecialFolder's oder auch benutzerdefinierte Pfade oder Kombinationen aus' SpecialFolder' und einem benutzerdefinierten Pfad speichern? – hangy
Korrigieren. Im Moment habe ich sie nur in der Klasse fest programmiert, aber ich bin es leid, jedes Mal einen Code ändern zu müssen. – twreid