/ / 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);

回答:

回答№1は5

@ 文字列の先頭にある文字は、 リテラル 文字列、あなたはそれをエスケープする必要はありません。

つかいます の代わりに \ または別の方法として @ シンボル。


これをテストした後、二重のバックスラッシュは実際にはこの例外をスローしませんでした、Windowsは余分なものを無視するのに十分賢いようです 。ただし、XMLファイルをロードするために使用する別のパスでロードするようです。

string pathway = ...

問題はこのファイルパスにある可能性が最も高いですそのパスに無効な文字が含まれているか、またはファイルの読み込み方法に関するエンコードの問題が原因である可能性があります。


実際にコードをさらに見直すと、まるであなたが自分のコードをロードしようとしているように見えます。 app.config ファイル。ザ 負荷 方法 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

文字列全体をエスケープするために@を使用する場合、その文字列の内側を手動でエスケープしないでください。


回答№3の場合は0

そのパスの中に違法な文字が見られることはありませんが、これを試してみてください。

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


回答№4の場合は0

その過程で、あなたはファイル全体(ReadAllText)をロードします。不正な文字は、おそらくそのファイルの内容にあります(例:D:ProjectSMCCampaignmgmttrunkRunsmccampaignwindows.exe.config)。