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
.
0
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 ;)