Wie finde ich heraus, in welchem Verzeichnis meine Konsolen-App mit C # ausgeführt wird?
90
So rufen Sie das Verzeichnis ab, in dem sich die EXE-Datei befindet:
AppDomain.CurrentDomain.BaseDirectory
So rufen Sie das aktuelle Verzeichnis ab:
Environment.CurrentDirectory
System.AppContext.BaseDirectory
.Abhängig von den für Ihre Anwendung gewährten Rechten, unabhängig davon, ob das Kopieren von Schatten aktiviert ist oder nicht, und anderen Aufruf- und Bereitstellungsoptionen können unterschiedliche Methoden funktionieren oder zu unterschiedlichen Ergebnissen führen, sodass Sie Ihre Waffe mit Bedacht auswählen müssen. Allerdings führen alle folgenden Aktionen für eine vollständig vertrauenswürdige Konsolenanwendung, die lokal auf dem Computer ausgeführt wird, auf dem sie sich befindet, zum gleichen Ergebnis:
Sie müssen die Dokumentation der oben genannten Mitglieder konsultieren, um die genauen erforderlichen Berechtigungen zu erhalten.
quelle
Path.GetDirectoryName (Assembly.GetExecutingAssembly (). Location)
quelle
In .NET können Sie
System.Environment.CurrentDirectory
das Verzeichnis abrufen, aus dem der Prozess gestartet wurde.System.Reflection.Assembly.GetExecutingAssembly().Location
zeigt Ihnen den Speicherort der aktuell ausgeführten Assembly an (dies ist nur interessant, wenn die aktuell ausgeführte Assembly von einem anderen Ort als dem Speicherort der Assembly geladen wird, an dem der Prozess gestartet wurde).quelle
Unter Windows (nicht sicher über Unix usw.) ist dies das erste Argument in der Befehlszeile.
In C / C ++ wird das Element in argv * angezeigt
WinAPI - GetModuleFileName (NULL, char *, MAX_PATH)
quelle
Application.StartUpPath;
quelle
Angenommen, der Projektname Ihrer .Net-Kernkonsolenanwendung lautet DataPrep.
Projektbasisverzeichnis abrufen:
Ausgabe: ~ DataPrep \ bin \ Debug \ netcoreapp2.2
Ausgabe: ~ DataPrep \
quelle
Verwenden Sie
AppContext.BaseDirectory
für .net5.quelle