/ / Незаконні символи на шляху в коді C # - c #

Несанкціоновані символи в шляху в коді C # - c #

Привіт, я отримую помилку в коді нижче, як нелегальні символи на шляху, як очистити це?

string pathway = System.IO.File.ReadAllText(@"D:\Project\SMCCampaignmgmt\trunk\Run\smccampaignwindows.exe.config");
XmlDocument doc = new XmlDocument();
doc.Load(pathway);

Відповіді:

5 за відповідь № 1

The @ символ на початку рядка означає, що ви оголошуєте a буквально рядок, вам не потрібно уникати цього.

Використовуйте замість \ або альтернативно видалити @ символ


Після тестування цього виявляється, що подвійний нахил не виграє насправді цей виняток, Windows здається досить розумним, щоб ігнорувати додаткові . Однак, здається, ви завантажуєте інший шлях, який використовуєте для завантаження XML-файлу, тобто

string pathway = ...

Проблема, швидше за все, у цьому шляху до файлу(який ви не показуєте у своєму прикладі). Цей шлях або має недійсний символ у ньому, або, можливо, через проблему кодування з тим, як ви читаєте файл у.


Насправді при подальшому перегляді коду виглядає так, ніби ви намагаєтеся завантажити свій код app.config файл The Завантаження метод XDocument очікує шлях до файлу, а не необроблений XML. У вас є 2 варіанти, використовуйте Load правильно, пройшовши шлях файлу безпосередньо

doc.Load("D:\Project\SMCCampaignmgmt\trunk\Run\smccampaignwindows.exe.config")

Або зберігайте код так, як у вас є, але зателефонуйте до Розібрати метод

string pathway = System.IO.File.ReadAllText(@"D:\Project\SMCCampaignmgmt\trunk\Run\smccampaignwindows.exe.config");
XmlDocument doc = XmlDocument.Parse(pathway);

2 для відповіді № 2

Якщо ви використовуєте @ для виходу з цілої рядки, ви не повинні уникати вручну всередині цього рядка.


0 для відповіді № 3

Я не можу бачити жодних незаконних символів на цьому шляху, але дайте цьому піти

doc.Save(@"D:ProjectSMCCampaignmgmttrunkRunsmccampaignwindows.exe.config");


0 для відповіді № 4

На шляху ви завантажуєте весь файл (ReadAllText). Незаконні символи, ймовірно, містяться у вмісті цього файлу (тобто у D: ProjectSMCCampaignmgmttrunkRunsmccampaignwindows.exe.config)