簡體   English   中英

XDocument.Save()的第二次迭代拋出“對路徑的訪問被拒絕”

[英]Second iteration of XDocument.Save() throwing “Access to Path Denied”

我正在編寫一個小類來管理內部應用程序的配置XML。

每次加載新的t列表時,都會調用以下代碼,並嘗試序列化新t的數據,或者在t已經存在的情況下加載。

我缺少基本的東西,但是我不確定在哪里。

此代碼引發異常

if (!File.Exists(Path.Combine(Environment.CurrentDirectory + "TaskData.xml")))
{
    XDocument doc = new XDocument();
    XElement rootElement = new XElement("ConfigData",
                                new XElement("Servers"),
                                new XElement("Paths"));
    doc.Add(rootElement);
    doc.Save("TaskData.xml");
}

特定行是“ doc.Save(“ TaskData.xml”)”。

在第一次迭代中,這可以正常工作,並且代碼創建了模板文件。

在第二次迭代中,即使xml文件位於目錄中,File.Exists也會返回“ false”,而doc.Save會拋出權限異常。

任何幫助是極大的贊賞。

我很驚訝它正在第一次迭代中工作-因為您沒有檢查有用的文件。 而不是調用的Path.Combine有多個參數,你串聯TaskData.xml當前目錄。 你要:

if (!File.Exists(Path.Combine(Environment.CurrentDirectory, "TaskData.xml")))

遺憾的是,您當前的代碼甚至Path.Combine編譯...可以說Path.Combine的重載應該首先都至少具有2個必需的非參數數組參數...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM