myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- Grundlagen von C# (https://www.mycsharp.de/wbb2/board.php?boardid=88)
--- Application.StartupPath - letzter Ordner fehlt (https://www.mycsharp.de/wbb2/thread.php?threadid=121591)


Geschrieben von da_user am 13.02.2019 um 19:07:
  Application.StartupPath - letzter Ordner fehlt
Hi,
ich suche einen Weg das Verzeichnis in dem sich meine .exe befindet zu ermitteln. Ich bin ja  dort schon fündig geworden mit

C#-Code:
Application.StartupPath

Allerdings habe ich damit ein Problem: der letzte Ordner fehlt!
Die .exe befindet sich im Debug-Modus also beispielsweise in

Code:
1:
*Benutzer*\Documents\Visual Studio 2017\Projects\*Projektname*\*Projektname*\bin\x64\Debug

Dann liefert mir aber Application.StartupPath den Ordner

Code:
1:
*Benutzer*\Documents\Visual Studio 2017\Projects\*Projektname*\*Projektname*\bin\x64\

Gibt es dafür eine Lösung, oder mache ich da irgendwas falsch?

VG
Matthias


Geschrieben von Abt am 13.02.2019 um 20:09:
 
Du hast in dem Thread gelesen, dass StartupPath falsche Ergebnisse liefern kann und wie man besser den Pfad ermittelt?


Geschrieben von da_user am 13.02.2019 um 20:27:
 
Ja, aber auch dass die anderen Methoden ebenfalls ihre Probleme haben. So die eine "beste" Lösung lese ich da ehrlich gesagt nicht heraus.

Höchstens noch "Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location);"
Der scheint auch soweit auch zu funktionieren, aber funktioniert der immer wenn die Voraussetzung gegeben ist, dass der Befehl in der exe steckt? Kann ich mich darauf verlassen?

Application.StartupPath habe ich bis dato auch schon öfter verwendet und jetzt ist es das erste Mal, dass dieses Problem auftritt und gefühlt mache ich eigentlich auch nix anders als sonst. Und ich arbeite auch nicht an einem Dienst, sondern an einer ganz normalen Windows.Form-Anwendung.


Geschrieben von Abt am 13.02.2019 um 20:39:
 
Es ist nicht neu, dass Application.StartupPath nicht zuverlässig ist, im Gegensatz zu den anderen Varianten.
Der Thread ist mehr als 10 Jahre alt.

Und natürlich kann es sein, dass je nach eingesetztem .NET Projekttyp eben Variante A, B oder dann eben F besser ist. "Beste" ist daher hinfällig.
Absolutismus bei sich weiter entwickelnden Technologien ist halt schwierig...steht alles klar in dem FAQ-Thread.


Geschrieben von da_user am 13.02.2019 um 20:49:
 
Naja, ich bleib jetzt erstmal bei "Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location);", mal sehen...

BTW, wenn der Thread ja praktisch schon veraltet ist:
Gibt es da heutzutage bessere/andere Varianten?


Geschrieben von Abt am 13.02.2019 um 23:57:
 
Wo genau soll denn der Thread veraltet sein? verwundert Magst das mal erklären?
Alle .NET Technologien (.NET Framework, .NET Standard, .NET Core) sowie WPF, WinForms und der ASP.NET Stack sind abgedeckt.
Was fehlt Dir denn?

Xamarin funktioniert ganz anders, ebenso UWP - da hast Du keinen Startpfad sondern ohnehin nur isolierte Apps.
Gleicher Blazor.


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 18.01.2020 03:56