C # Warum ich eine NotSupported Ausnahme auf meine Datei-Pfad erhalten
-
12-09-2019 - |
Frage
StreamReader fr = new StreamReader("D:\\test\\" + item);
Dies ist, was ich tun möchte. Der Artikel ist ein String mit dem Dateinamen. Das Loch Schnur ist wie die
"D:\\test\\01-Marriotts Island.mp3"
vor dem er die Stream zu erzeugen versucht. was ist falsch mit dem Weg?
Lösung
Stream zum Lesen von Zeichendaten ausgelegt. Sie sollten verwenden Binary statt, wenn Sie versuchen, lesen Sie eine binäre Daten, wie zum Beispiel den Inhalt einer mP3-Datei.
Update: Wie Marc Sie auch streamen die Datei zu lesen und dies ein einfacher zu bedienende Schnittstelle zur Manipulation der Datei als Binary bereitstellen. Auch ich zweite seine Empfehlung verwenden Path.Combine wenn Aufbau der Pfad zur Datei, die Sie zugreifen möchten.
Andere Tipps
Gibt es eine Nachricht, die mit ihm geht? Für Informationen, ist der einfachste Weg, Wege zu kombinieren mit Path.Combine
:
using(StreamReader fr = new StreamReader(Path.Combine(@"D:\Test", item))) {
// ...
}
(beachten Sie auch die using
, um sicherzustellen, es angeordnet ist)
oder noch deutlicher (IMO):
using(StreamReader fr = File.OpenText(Path.Combine(@"D:\Test", item))) {
// ...
}
(natürlich, wie bereits an anderer Stelle erwähnt, ein StreamReader
für mp3 ungeeignet sein kann)
Beratung der MSDN-Dokumentation für Stream , weiß ich nicht siehe NotSupportedException
als Ausnahme aufgelistet, dass dieser API werfen. Allerdings eine andere ähnliche Konstruktor Überlastung es auflistet:
NotSupportedException
: Pfad enthält eine falsche oder ungültige Syntax für Dateinamen, Verzeichnisnamen oder Volumen Label.
Also habe ich versucht, es selbst mit einer ungültigen Datenträgerbezeichnung und in der Tat bekommt NotSupportedException
:
StreamReader reader = new StreamReader("DD:\\file.txt");
// throws...
//
// Unhandled Exception: System.NotSupportedException: The given path's format is not supported.
Also meine Vermutung ist, es ist etwas falsch mit Ihrem Weg ist.