2010-05-26 15 views
6

Eine ziemlich einfache Frage; Wie finde ich den Pfad des lokalen Verzeichnisses, in dem meine Exe liegt? As-in habe ich eine .exe und im Programm muss ich eine TXT-Datei in dem Verzeichnis erstellen, in dem die exe ist!Pfad des lokalen Verzeichnisses

[Sprache - C#]

Also, wenn die exe in C:/Temp und von dort gestartet wird; mein txt sollte in C erstellt werden:/Temp

Wenn der Benutzer die EXE nach D verschieben will:/Temp und läuft von dort; Ich sollte die TXT-Datei in D erstellen können:/Temp

Ich habe versucht, die Directory.GetCurrentDirectory(), aber das Verzeichnis der Ausführung des Programms zurückgibt!

Antwort

15

Assembly.GetExecutingAssembly().Location

+9

Die Klasse "Assembly" ist Teil des System.Reflection-Namespace - für diejenigen, die danach suchen würden ... –

0

Sie konnten dieses versuchen:

this.GetType().Assembly.CodeBase 

oder wenn es sich um eine WinForms-Anwendung

ist
Application.ExecutablePath 
6

versuchen, diese

sPath = System.AppDomain.CurrentDomain.BaseDirectory; 

oder sonst

1

Eine ähnliche Information befindet sich in System.Appdomain.BaseDirectory, dem Basisverzeichnis, das der Assembly Resolver zum Testen von Baugruppen verwendet. In einfachen Fällen zeigt dies auf die Position der ursprünglichen .exe Baugruppe.

String path = AppDomain.CurrentDomain.BaseDirectory; 
0

können Sie verwenden Application.StartupPath. Es ruft den Pfad für die ausführbare Datei ab, die die Anwendung gestartet hat, ohne den Namen der ausführbaren Datei.

+1

Beim Ausführen vom Debugger in VS 2010, der in "C: \ Programme (x86) \" aufgelöst wird Microsoft Visual Studio 10.0 \ Common7 \ IDE ". –

Verwandte Themen