Erhalten Verzeichnis der Anwendung mit C# - Konsolenanwendung?
Hab was gefunden bei google, aber es funktioniert nicht auf C# - Konsolenanwendung
Was ich gefunden habe:
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
Wie kann ich Verzeichnis der Anwendung mit c# - Konsolenanwendung?
InformationsquelleAutor a1204773 | 2012-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen immer noch Anwendung.ExecutablePath in der Konsole-Anwendung, die Sie brauchen:
System Hinzufügen.Windows.Formen, um Ihr aufzuhalten der Benutzung Abschnitt
Du kannst auch
- Verzeichnis.GetCurrentDirectory()
stattPath.GetDirectoryName(Application.ExecutablePath)
und damit Sie nicht brauchen eine Referenz auf System.Windows.Formen.Wenn Sie möchten, nicht zu zählen, weder
System.IO
nochSystem.Windows.Forms
namespaces, dann sollten Sie Reimeus Antwort.Directory.GetCurrentDirectory()
wird das aktuelle Arbeitsverzeichnis anstatt das Verzeichnis mit der Anwendung.aber ich immer noch lieber. Ich will nicht davon abhängen, Formen.
InformationsquelleAutor Alex
Anwendung ist nicht verfügbar, für Konsolen-Anwendungen für windows forms.
Um das Arbeitsverzeichnis können Sie
Ihnen auch das Verzeichnis der ausführbaren Datei, die Sie verwenden könnten:
InformationsquelleAutor Reimeus
VORSICHT, es gibt verschiedene Methoden und FALLSTRICKE für Pfade.
Welchem Ort sind Sie nach? Das working-directory, das .EXE-Verzeichnis, die DLLs Verzeichnis?
Wollen Sie code, der funktioniert auch in einem Dienst-oder Konsolen-Anwendung?
Wird Ihren code brechen, wenn das Verzeichnis hat inkonsistente Schrägstriche?
Lässt Blick auf einige der Optionen:
Erfordert das hinzufügen einer Referenz und laden der Applikation-namespace.
Wenn das Programm ausgeführt wird, durch die Verknüpfung, registry, task-manager, diese geben die "Start In" Ordner, die anders ist .EXE-Lage.
Je nachdem, wie es ausgeführt Effekte, ob es enthält einen nachgestellten Schrägstrich. Dies kann brechen die Dinge, zum Beispiel GetDirectoryName() der Ansicht, kein Schrägstrich, um eine Datei, und entfernen Sie den letzten Teil.
Beiden sind meine Empfehlung, die Arbeit in Form und Konsole-Anwendungen:
Werden, wenn in einem Hauptprogramm, die beiden entsprechen. Wenn Sie innerhalb einer DLL, die erste gibt die .EXE-Verzeichnis, das laden der DLL, der zweite gibt die DLLs Verzeichnis.
AppDomain.CurrentDomain.BaseDirectory May or may not have a trailing slash depending on how the application is launched
WasPath.Combine
? Nicht Sie hören über Sie vor?Wieso der downvote? Ja Weg.Kombinieren Sie kümmert sich um Schrägstriche, aber was, wenn Sie nicht das verbinden von Pfaden? Zum Beispiel übergeben Sie das Verzeichnis, um ein Kommandozeilen-Programm, wo Schrägstriche können ändern das Verhalten.
Lassen Sie
Path.Combine
beiseite, Warum hast du nicht aufrufenPath.GetDirectoryName
aufBaseDIrectory
auch so wie aufAssembly.Location
?sorry für die späte Antwort. Aufgrund der inkonsistenten trailing slash, BaseDirectory behandelt werden können als Datei Pfad durch GetDirectoryName (), die Sie verursacht entfernen Sie den letzten Teil des Weges. Ich aktualisiert meine Antwort klarer zu werden.
InformationsquelleAutor WhoIsRich
Versuchen
- Verzeichnis.GetCurrentDirectory
Directory.GetCurrentDirectory()
wird das aktuelle Arbeitsverzeichnis anstatt das Verzeichnis mit der Anwendung.InformationsquelleAutor Zbigniew