Plattformübergreifende Dateinamensbehandlung in .NET Core

8

Wie wird der Dateiname in System.IO -Klassen plattformübergreifend gehandhabt, damit er unter Windows und Linux funktioniert?

Zum Beispiel schreibe ich diesen Code, der perfekt unter Windows funktioniert, aber er erstellt keine Datei unter Ubuntu Linux:

%Vor%     
Rem 03.07.2016, 09:03
quelle

4 Antworten

12

Windows mit Backslash. Linux mit Slash. Path.Combine setzt das richtige Symbol:
Path.Combine-Methode - MSDN

    
user6522773 03.07.2016, 09:22
quelle
7

Sie können Path.DirectorySeparatorChar auch wie folgt verwenden:

%Vor%

Referenz: MSDN

    
onemorecupofcoffee 09.11.2016 10:07
quelle
2

Sie können einfach Schrägstriche verwenden. Relative Pfade funktionieren identisch, und absolute Pfade können nur relativ zum Stamm des Hauptlaufwerks sein (absolute Pfade, die mit "c:" beginnen, sind nicht portierbar)

    
Paul Stelian 03.07.2016 11:48
quelle
0

Der ursprüngliche Beitrag ist über ein Jahr alt, aber ich habe immer noch auf dieses Problem gestoßen. Es scheint mir, dass die Verwendung von Punkten in relativen Pfaden ebenfalls ein Problem ist.

Ein Pfad wie

%Vor%

hat unter Windows gut funktioniert, aber nicht unter Unix. Wenn Sie die Punktnotation für das aktuelle Verzeichnis in:

ändern %Vor%

Ich hatte mehr Erfolg.

    
user3042674 30.01.2018 17:46
quelle

Tags und Links