2017-04-16 1 views
1

Ich speichere gerade einen Dateipfad für eine Datei, die ich öffnen und für mein Programm einlesen möchte. Jedoch, wenn ich diesen Weg in File.OpenText setzen fügt sie den Pfad zum aktuellen Verzeichnis in dem Dateipfad und dann bekomme ich diesen Fehler:Öffnen einer Datei durch Übergabe des absoluten Dateipfads

DirectoryNotFoundException: Could not find a part of the path "/Users/km/Desktop/MP/file:/Users/km/Downloads/PT07E.obj". 

Der Weg, den ich will, ist die, die ich in mich vorbei, das ist Datei:. /Users/km/Downloads/PT07E.obj“

gibt es eine Möglichkeit File.OpenText zu stoppen Zugabe zu diesem Weg, den ich in ursprünglich bin vorbei

Antwort

1

Wenn Sie mit Pfaden wie file:/{absolute path} (was ist eigentlich ein URI) Sie verwenden können System.Uri Klasse arbeiten.
Wie in this answer.

var uri = new Uri("file:/Users/km/Downloads/PT07E.obj"); 
using (var reader = File.OpenText(uri.AbsolutePath)) 
{ 
    ... 
} 
+0

Danke! – Kyle

1

Sie haben einen richtigen absoluten Pfad hinzufügen? - Das heißt, Sie haben vergessen, das Laufwerk zu definieren (normalerweise ist es C). Also müsste Ihr Pfad sein (ich würde Backslashes verwenden):

@"C:\Users\km\Downloads\PT07E.obj" 

Allerdings ist es eine bessere Idee, nicht einen absoluten Pfad für diesen Einsatz. Ich würde die Special Option von C# verwenden:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downlads", "PT07E.obj"); 

Und es ist immer eine gute Idee, Path.Combine zu verwenden, die den Standardpfad Splitter des OS verwendet.

+1

Wenn ich hart codieren, dass in File.OpenText, ich immer noch das gleiche hinaus erhalten nach wie vor leider – Kyle

+0

Sind Sie die genau gleiche Ausnahme zu bekommen? Oder existiert die Datei wahrscheinlich gar nicht? Aber Ihre Exception ist tatsächlich ziemlich interessant - sie sagt, dass sie keinen * Teil * des Pfades finden konnte und das * Verzeichnis * nicht finden konnte. Bitte geben Sie die neue Ausnahme (wenn es anders ist) und den Code, den Sie ausprobiert haben. – MetaColon

+0

Und stellen Sie sicher, dass Sie berechtigt sind, auf den Ordner – MetaColon

Verwandte Themen