[英]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.