2009-06-29 9 views
0

Ich habe einige inWie Pfad vorherigen zu Exceuting Versammlung bekommen

befindet Dateien

c: \ MyApp \ file.txt

und aktuelle assenbly in in debud filder

c Ausführung: \ MyApp \ bin \ Debug \

i Adresse von oben "file.txt" zur Laufzeit erhalten möchten ..

ich habe versucht, diese

Assembly.GetExecutingAssembly() Standort

es gibt mir c. \ MyApp \ bin \ Debug \ MyApp.exe

wie i-Adresse von "file.txt" kann

Antwort

1

Der "Debug" -Ordner (und der "Release" -Ordner) sind die tatsächliche Ausgabe des Builds Ihres Projekts. Wenn Sie file.txt nicht im Projekt enthalten und als "In Ausgabeverzeichnis kopieren" markiert haben, wird dies nicht als Teil der Build-Ausgabe gezählt, und Ihre App sollte nicht versuchen, sie zu laden.

Grundsätzlich setzt nur "Copy to Output Directory" auf "Kopieren immer" oder "Kopieren, falls neueren", und weiter den Pfad "file.txt"

verwenden
1

Sie können erhalten t, da die Datei und die kompilierte Anwendung keine Beziehung haben. Was passiert, wenn Sie MyApp.exe woanders hin verschoben haben?

Sie haben 2 Möglichkeiten:

  1. in Ihrem Projekt als Inhaltsdatei File.txt einschliessen
  2. Verwenden Konfiguration (es wird in der Ausgabe und im selben Ordner wie MyApp.exe enthalten sein) - Erlaube einer Benutzeroption zu definieren, wo die Datei zu finden ist. Dazu können Sie beispielsweise AppSettings verwenden.

Nun, technisch gesehen kann man, da man immer auf die Eltern des aktuellen Verzeichnisses navigieren können („MyAppPath \ ..“), aber das ist wirklich nur eine schlechte Idee ...

0

Ihre ausführbaren Ordner

AppDomain.CurrentDomain.BaseDirectory 

um zu bekommen, was Sie möchten, Sie die folgende

string fileTxtPath = AppDomain.CurrentDomain.BaseDirectory + "..\\file.txt"; 

natürlich könnte tun, wenn: Pfad kann wie folgt erhalten werden Haben Sie eine Datei, die zu Ihrem Projekt gehört, dann sollten Sie sie in den gleichen Ordner wie Ihre ausführbare Datei aufnehmen. Klicken Sie mit der rechten Maustaste auf Visual Studio und gehen Sie zu den Eigenschaften. Wählen Sie dann in der Option In das Ausgabeverzeichnis kopieren die Option Immer kopieren aus.

Verwandte Themen