Ścieżka względna

0

Jak za pomocą Path.Combine mogę utworzyć w sposób bezpieczny (działający na różnych systemach) ścieżkę względną? Directory.GetCurrentDirectory zwraca ścieżkę kończącą się na ConsoleApp1\ConsoleApp1\bin\Debug\netcoreapp2.1, a chcę dostać się do pliku, którego ścieżka kończy się na ConsoleApp1\ConsoleApp1\test.txt. Wiem, że mogę zmienić Working Directory w VS, ale chciałbym to zrobić za pomocą Path.Combine.

1

zawsze plik txt będziesz miał trzy poziomy wyżej? BTW nic nie stoi na przeszkodzie aby ścieżka wyglądała tak ConsoleApp1\ConsoleApp1\bin\Debug\netcoreapp2.1\..\..\..\test.txt

0

Chyba nie zadziała na Linuxie, bo o ile wiem, tam w ścieżkach zamiast \ używa się /.

1

Spróbuj coś w tym stylu:

Path.GetFullPath(Path.Combine(@"C:\Test\Test\Test2", @"..\Ala"))
0

Dla potomnych: Path.GetFullPath zamienia seperatory na właściwe danemu systemowi, czyli Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), @"../../../sth/test.txt")) na Windowsie zamieni slashe na backslashe ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0