Wie konvertiere ich einen relativen Pfad in einen absoluten Pfad in einer Windows-Anwendung?
Ich weiß, dass wir server.MapPath () in ASP.NET verwenden können. Aber was können wir in einer Windows-Anwendung tun?
Ich meine, wenn es eine in .NET integrierte Funktion gibt, die damit umgehen kann ...
Antworten:
Hast du es versucht:
? Beachten Sie, dass dabei das aktuelle Arbeitsverzeichnis des Prozesses verwendet wird, nicht das Verzeichnis, das die ausführbare Datei enthält. Wenn das nicht hilft, klären Sie bitte Ihre Frage.
quelle
Wenn Sie den Pfad relativ zu Ihrer EXE-Datei erhalten möchten, verwenden Sie
quelle
Path.Combine
nicht einmal mit fahrzeugbezogenen Pfaden umgehen zu können. Es ignoriert einfach den anfänglichen Pfad, wie es scheint. Ich poste meine eigene vollständige Lösung...
, wird Müll erzeugt...
sind) von allen Dateimanipulationssystemen in .Net perfekt akzeptiert und aufgelöst. Wenn es Sie stört, führen Sieabsolute = Path.GetFullPath(absolute)
es aus.Dieser funktioniert für Pfade auf verschiedenen Laufwerken, für Laufwerksrelative Pfade und für tatsächliche relative Pfade. Heck, es funktioniert sogar, wenn das
basePath
nicht wirklich absolut ist; Es verwendet immer das aktuelle Arbeitsverzeichnis als endgültigen Fallback.quelle
Path.Combine
. Das ist leicht zu beheben, aber ich vermeide es, da ich es oft verwende, um relative Pfade im Arbeitsverzeichnis aufzulösen, und null als erstes Argument anzugeben, sieht seltsam aus.Es ist ein etwas älteres Thema, aber es könnte für jemanden nützlich sein. Ich habe ein ähnliches Problem gelöst, aber in meinem Fall befand sich der Pfad nicht am Anfang des Textes.
Also hier ist meine Lösung:
Beispiel:
quelle
Path.GetFullPath
wird automatisch aufgelöst. \ und .. \. Außerdem fügen Sie dieAbsolutePath
Erweiterungsfunktion der String-Klasse im Allgemeinen hinzu. Dies kann etwas übertrieben sein.