Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Application.StartupPath - letzter Ordner fehlt
da_user
myCSharp.de - Member



Dabei seit:
Beiträge: 91
Herkunft: nähe Regensburg

Themenstarter:

Application.StartupPath - letzter Ordner fehlt

beantworten | zitieren | melden

Hi,
ich suche einen Weg das Verzeichnis in dem sich meine .exe befindet zu ermitteln. Ich bin ja dort schon fündig geworden mit

Application.StartupPath

Allerdings habe ich damit ein Problem: der letzte Ordner fehlt!
Die .exe befindet sich im Debug-Modus also beispielsweise in
*Benutzer*\Documents\Visual Studio 2017\Projects\*Projektname*\*Projektname*\bin\x64\Debug
Dann liefert mir aber Application.StartupPath den Ordner
*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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15827
Herkunft: BW

beantworten | zitieren | melden

Du hast in dem Thread gelesen, dass StartupPath falsche Ergebnisse liefern kann und wie man besser den Pfad ermittelt?
private Nachricht | Beiträge des Benutzers
da_user
myCSharp.de - Member



Dabei seit:
Beiträge: 91
Herkunft: nähe Regensburg

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15827
Herkunft: BW

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
da_user
myCSharp.de - Member



Dabei seit:
Beiträge: 91
Herkunft: nähe Regensburg

Themenstarter:

beantworten | zitieren | melden

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?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von da_user am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15827
Herkunft: BW

beantworten | zitieren | melden

Wo genau soll denn der Thread veraltet sein? 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.
private Nachricht | Beiträge des Benutzers