Mein Projekt hat eine Ordnerstruktur wie folgt:
- Projekt,
- Projekt / Daten
- Projekt / Motor
- Projekt / Server
- Projekt / Frontend
Auf dem Server (der im Ordner Projekt / Server ausgeführt wird) verweise ich auf den Ordner wie folgt:
var rootFolder = Directory.GetCurrentDirectory();
rootFolder = rootFolder.Substring(0,
rootFolder.IndexOf(@"\Project\", StringComparison.Ordinal) + @"\Project\".Length);
PathToData = Path.GetFullPath(Path.Combine(rootFolder, "Data"));
var Parser = Parser();
var d = new FileStream(Path.Combine(PathToData, $"{dataFileName}.txt"), FileMode.Open);
var fs = new StreamReader(d, Encoding.UTF8);
Auf meinem Windows-Computer funktioniert dieser Code Directory.GetCurrentDirectory()
einwandfrei, da er auf den aktuellen Ordner übertragen wurde
rootFolder.Substring(0, rootFolder.IndexOf(@"\Project\", StringComparison.Ordinal) + @"\Project\".Length);
holt mir den Stammordner des Projekts (nicht die Ordner bin oder debug). Aber als ich es auf einem Mac laufen ließ, wurde es " Directory.GetCurrentDirectory()
" an / usr // [etwas anderes] gesendet. Es bezog sich nicht auf den Ordner, in dem mein Projekt liegt.
Was ist der richtige Weg, um relative Pfade in meinem Projekt zu finden? Wo soll ich den Datenordner so speichern, dass er für alle Unterprojekte in der Lösung leicht zugänglich ist - speziell für das Turmfalken-Server-Projekt? Ich möchte es lieber nicht im Ordner wwwroot speichern müssen, da der Datenordner von einem anderen Mitglied im Team verwaltet wird und ich nur auf die neueste Version zugreifen möchte. Was sind meine Optionen?