Ścieżka względna

Odpowiedz Nowy wątek
2018-12-07 09:14
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.

Pozostało 580 znaków

2018-12-07 09:58
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


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
Wiem, że tak można;) Tylko że taka ścieżka chyba by nie zadziałała, gdybym przeniósł aplikację na Linuxa - nobody01 2018-12-07 10:01
ODPOWIADAJ W POSTACH. A dlaczego ma nie zadziałać? - abrakadaber 2018-12-07 10:33

Pozostało 580 znaków

2018-12-07 10:36
0

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

Pozostało 580 znaków

2018-12-07 11:25

Spróbuj coś w tym stylu:

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

Pozostało 580 znaków

2018-12-07 11:31
1

https://docs.microsoft.com/en[...]rator?view=netframework-4.7.2


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2018-12-07 11:46
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 ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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