2010-08-30 3 views
16

Ich konvertiere eine Windows Forms-Anwendung in eine WPF-Anwendung. Gibt es eine Möglichkeit, Dinge wie Startpfad, Benutzeranwendungsdatenpfad, allgemeiner Anwendungsdatenpfad usw. zu erhalten, ohne System.Windows.Forms zu referenzieren?Wie lautet die WPF-Datei "System.Windows.Forms.Application.X", um Startpfad, App-Datenpfad usw. zu erhalten?

Zuvor habe ich System.Windows.Forms.Application.StartupPath verwendet, aber das Objekt System.Windows.Application.Current enthält nicht die gleichen Informationen.

Antwort

13

Sie möchten vielleicht System.Environment.GetFolderPath betrachten.

Die Werte der SpecialFolder Enum sind zahlreich:

 
ApplicationData 
CommonApplicationData 
CommonProgramFiles 
Cookies 
Desktop 
DesktopDirectory 
Favorites 
History 
InternetCache 
LocalApplicationData 
MyComputer 
MyDocuments 
MyMusic 
MyPictures 
Personal 
ProgramFiles 
Programs 
Recent 
SendTo 
StartMenu 
Startup 
System 
Templates 

dass hilfreich?

+0

Genau das, was ich brauchte. Danke, alle. – bporter

2

Sie können die Umgebungsklasse verwenden, um alle Arten von Systeminformationen zu erhalten. Verwenden Sie für Verzeichnisse die Environment.GetFolderPath-Methode.

Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); 
+0

Verwenden Sie dies nicht zum Speichern von Benutzerdaten, wie in der Zusammenfassung angegeben: 'Der Profilordner des Benutzers. Anwendungen sollten keine Dateien oder Ordner auf dieser Ebene erstellen. Sie sollten ihre Daten unter den Speicherorten ablegen, auf die System.Environment.SpecialFolder.ApplicationData verweist. Hinzugefügt in .NET Framework 4.' – CularBytes

0

Ich verstehe und stimmt zu, dass zu System.Windows.Forms.dll Referenzierung sieht hässlich aus, aber ich denke, dass ist besser dann Rückgang Code Wiederverwendung und neu erfinden Fahrräder anstatt nur eine weitere Referenz.

Ich benutze zum Beispiel System.Windows.Forms.Application.ProductVersion in meiner Konsole-Anwendungen, wie sie das nicht, aber denke, das ist das kleinere Übel ..

Siehe auch this Frage auf SO

Verwandte Themen