Verzeichnisnamen der SpecialFolder ermitteln

CopWorker

Erfahrenes Mitglied
Hallo zusammen,

kann ich irgendwie den Verzeichnisnamen der SpecialFolders ermitteln.
D.h. Nicht den Verzeichnispfad einer Umgebungsvariablen (Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));).

Folgendes:
Ich erhalte aus einer Konfig-Datei einen Verzeichnispfad Z.Bsp.: PfadWPCStartupViews=c:\Programme\WPC2000\StartupViews
Mit "Programme" sagt der Debugger, dass die gesucht Datei im Pfad nicht existiert.
Tausche ich "Programme" gegen "Program Files" finde ich meine gesuchten Dateien in dem Verzeichnis und das
obwohl der Dateiexplorer "Programme" anzeigt.

Dann müsste ich nur noch eine string.Replace(string, string) auf meinen Verzeichnispfad anwenden.
Kein großer Aufwand.
Dann kann ich meine Dateien in
c:\Program Files\WPC2000\StartupViews
anstatt in
c:\Programme\WPC2000\StartupViews
suchen

Vielen Dank im Voraus.
Grüße von CopWorker
 
Bin kein .NET-ler, aber sowas steht in der Registry
....mal unabhängig davon, dass man sich fragen muss, wie ein "falscher" Pfad in eine config kommen kann....

EDIT: Wobei ich dann aber eher zu split mit "\" als Separator anstatt replace greifen würde sofern es sich "nur" um "Programme<-->Program Files" handelt.
Hast du einen Pfad wie "c:\Programme\WPC2000\Programme\MeinOrdner" wird ein Replace lustig.....
Mit einem Split musst du nur Element 1 des Ergebnis-Arrays ersetzen, und dann per Join wieder zusammenbauen

1597397674731.png
 
Zuletzt bearbeitet:
Hallo Zvoni,

die Pfade die sind auch sehr einfach mit "Environment..." rauszukriegen.
Aber das mit "split" und "join" ist ´ne ganz tolle Idee.
Ich splitte den bekannten Pfad1 in Liste1 und den Environment Pfad2 in Liste2.
Dann die Anzahl der Einträge (Liste2) nach Liste1 kopieren (ersetzen).
Liste1 in Pfad1 "ge"join"t", fertig ist die Laube.
Das ist ja genial.

Vielen Dank für den Tipp.
Grüße von CopWorker
 
Zurück