2015-11-28 32 views
0

當我試圖保存Xml文件到一個特定的文件夾,在第一次保存是好的,因爲它裏面沒有現有的xml文件,但如果我將它保存在同一個文件夾中相同的名稱錯誤將顯示...XML System.UnauthorizedAccessException

這是我的示例代碼來生成XML文件....

XMLPath = Path.Combine(TargetRFIFolder, filename); 

       try 
       { 
        XmlWriter xmlWriter = XmlWriter.Create(XMLPath); 

        xmlWriter.WriteStartDocument(); 
        xmlWriter.WriteStartElement("TeklaPartObject"); 

        foreach (ListViewItem item in lv_Tekla_object.Items) 
        { 
         xmlWriter.WriteStartElement("part"); 
         xmlWriter.WriteAttributeString("ID", item.Text); 
         xmlWriter.WriteString(item.SubItems[1].Text); 
         xmlWriter.WriteEndElement(); 
        } 
        xmlWriter.WriteStartElement("label"); 
        xmlWriter.WriteString(Path.GetFileName(lv_Directories.SelectedItems[0].ToolTipText)); 
        xmlWriter.WriteEndElement(); 
        xmlWriter.WriteEndDocument(); 
        xmlWriter.Close(); 
        xmlWriter.Flush(); 
        File.SetAttributes(XMLPath, File.GetAttributes(XMLPath) | FileAttributes.Hidden); 

感謝幫助球員,對於

回答

0

您無法訪問隱藏文件。
首先刪除屬性如下

File.SetAttributes(XMLPath, File.GetAttributes(XMLPath) & ~FileAttributes.Hidden); 

然後你就可以再次在同一文件夾具有相同的名稱保存它。
然後您可以再次設置隱藏屬性。

+0

謝謝你! @alexander –

0

您可以創建一個流,並用它你的XmlWriter。下一個程序說明了這一點。它創建一個XML文件(test.xml)兩次。第二次覆蓋已經存在的文件。

using System.IO; 
using System.Xml; 

namespace StackoverflowXmlFilesConsole 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      WriteXml("test.xml"); 
      WriteXml("test.xml"); 
     } 

     static void WriteXml(string path) 
     { 
      using (var stream = File.Open(path, FileMode.Create)) 
      { 
       using (var writer = XmlWriter.Create(stream)) 
       { 
        writer.WriteStartDocument(); 
        // replace this code with your XML writing code. 
        writer.WriteStartElement("Test"); 
        writer.WriteEndElement(); 
        writer.WriteEndDocument(); 
       } 
      } 
     } 
    } 
} 
+0

謝謝先生@venerik –

相關問題