Dlaczego path combine nie działa?

0

Co robię źle?

            string paths = "d:\\.net projects\\2017\\GridDB\\GridDB";
            string fileName = "Root.xml";
            string fullPath = Path.Combine(paths, fileName).Replace(@"\\", @"\");

Cały czas mam przy debugowaniu: d:\.net projects\2017\GridDB\GridDB\Root.xml
Znaczy tu nie wyświetla, ale wszędzie w ścieżce mam podwójny slash.

0

Bo ma tak być. "" jest znakiem specjalnym, w związku z tym, potrzebujesz go escape'ować w stringu, żeby było wiadomo, że chodzi Ci o "test\new", a nie "test \n(znak nowej linii) new" .

Spróbuj zmienić current directory na ścieżkę ze stringa, to zobaczysz, że jest okay :)

0

@Klojtex Sory, nie kumam skrótu myślowego. Jak to zmienić current directory na ścieżkę ze stringa?

To może inaczej. Co mam zrobić, żeby mieć dostęp w kodzie do pliku xml, który znajduje się w katalogu mojego projektu?

0

Wywal tego Replace'a.

1

A tak w ogóle to lepiej skopiuj ten plik do katalogu bin/debug(relase) i używaj:

var fullPath = Path.Combine(Directory.GetCurrentDirectory(), "Root.xml");
0

Przepraszam najmocniej. Tak często ostatnio debuguje - w dodatku jestem już trochę dzisiaj zmęczony, więc mi się pojeb...ło - tu nie chodzi o debuger. Po prostu wypluwa mnie z aplikacji i zwraca mi wyjątek: System.Xml.XmlException: „Brak elementu głównego.” przy zmiennej paths, w której są widoczne te podwójne slashe. Sory, myślałem...ech...dupa wołowa ze mnie i tyle. Tak czy siak, co może oznaczać ten wyjątek?

0

NO!!! ;-)
A teraz, gdy zrobiłem jak kazał @kzkg, to dostałem:
System.UnauthorizedAccessException: „Odmowa dostępu do ścieżki „C:\Program Files (x86)\IIS Express\Root.xml”

A ja chcę mieć przecież wszystko na d w katalogu głównym projektu - HIHI;-)

Dobra, okej!!! Już się kzkg nie denerwuj. Udało się to, co miało się udać. Dzienks!!!

0

Odmowę dostępu do ścieżki masz, ponieważ windows blokuje zapis do swoich folderów. Musisz zapisywać na przykład w /AppData/Roaming (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)), lub na dysku innym niż ten z windowsem.

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