Ich habe eine Asp.Net Core 1.0.0 App, die sowohl unter Linux als auch unter Windows läuft. In der App muss ich Dateien hochladen und in wwwroot
Unterordner speichern. Ich bekomme IHostingEnvironment.WebRootPath
und einen Unterordner angeben. Es funktioniert gut unter Windows, aber nicht unter Linux wegen Pfaden. Window's \
wird natürlich nicht funktionieren. Wie kann ich feststellen, ob meine App unter Windows oder Linux vom Controller ausgeführt wird, und einen geeigneten Pfadbegrenzer auswählen?Wie erkennt man das Betriebssystem, auf dem meine Asp.Net Core App läuft?
1
A
Antwort
3
Stattdessen sollten Sie Path.Combine
verwenden, um Verzeichnisnamen zu generieren. Zum Beispiel:
var root = env.WebRootPath;
var myDirectory = Path.Combine(root, "subdirectory");
+0
Vielen Dank! Es funktioniert super! Ich kannte die 'Path'-Klasse und ihre Funktionen nicht – Slip
0
Sie /
auf Windows und Linux
Wenn Sie das Betriebssystem verwenden, können Sie wollen wissen, 'RuntimeInformation' oder' Environment' verwendet werden kann https://github.com/dotnet/corefx/issues/9729 –
wie DavidG erwähnt, können Sie abstrahieren, ob es "/" oder "\" ist, indem Sie Path-Methoden verwenden, um Ihnen Verzeichnisse zu geben. – mmcrae
überprüfen Sie diesen Artikel https://codepedia.info/dotnet-core-to-detect-operating-system-o-splatform/ –