ich eine Zeichenfolge, die mehr oder weniger wie folgt aussieht:Dateipfade mit Nicht-ASCII-Zeichen und Fileinfo in C#
"C:\\bláh\\bleh"
ich ein Fileinfo mit ihm machen, aber wenn ich für seine Existenz überprüfen gibt es falsch :
var file = new FileInfo(path);
file.Exists;
Wenn ich den Pfad zu
"C:\\blah\\bleh"
bei Debug-Zeit und stellen Sie sicher, dass manuell umbenennen blah wit existiert h bleh drinnen, dann file.Exists fängt an, true zurück zu geben. Also glaube ich, dass das Problem der nicht-ascii Charakter ist.
Die tatsächliche Zeichenfolge wird von meinem Programm erstellt. Ein Teil kommt von der AppDomain der Anwendung, der Teil, der das "á" enthält, der andere Teil kommt in gewisser Weise vom Benutzer. Beide Teile werden von Path.Combine zusammengestellt. Ich habe die Gültigkeit der resultierenden Zeichenfolge auf zwei Arten bestätigt: Kopieren von dem Fehler, den mein Programm generiert, das den Pfad enthält, in Explorer öffnet die Datei einwandfrei. Betrachtet man diese Zeichenfolge im Debugger, sieht sie korrekt aus, da \ als \ geschrieben wird. Das "á" wird vom Debugger literarisch gedruckt.
Wie soll ich eine Zeichenkette verarbeiten, so dass sie sich selbst bei Nicht-ASCII-Zeichen als gültiger Pfad erweist?
Woher kommt die Zeichenfolge? Ist es in einer Codedatei codiert oder wird es vom Benutzer bereitgestellt? –
Fredrik Mörk, ich habe gerade diese Information zu der Frage selbst hinzugefügt. – Pablo
Das ist ein wierd. Ich habe eine Datei mit dem gleichen Pfad und Namen erstellt, und der folgende Code gibt "True" aus: 'FileInfo fi = new FileInfo (" C: \\ bláh \\ bleh "); Console.WriteLine (fi.Exists); ' –