覆盖现有的XML文件,如果已经存在

我试图覆盖现有的xml文件(如果已经存在).

我正在使用下面的代码来检查文件是否存在,如果存在,则将其覆盖.现有文件是隐藏的,因此在尝试覆盖之前我将其取消隐藏.

该文件未发生更改,但是覆盖不起作用.

这是我在下面使用的代码减去编写新xml数据的部分.

if(File.Exists(filePath))
{
     File.SetAttributes(filePath,FileAttributes.Normal);
     FileIOPermission filePermission = 
              new FileIOPermission(FileIOPermissionAccess.AllAccess,filePath);

     FileStream fs = new FileStream(filePath, FileMode.Create);

     XmlWriter w = XmlWriter.Create(fs);
 }

解决方法:

尝试像这样写入文件:

if(File.Exists(filePath))
{
     File.SetAttributes(filePath,FileAttributes.Normal);
     FileIOPermission filePermission = 
              new FileIOPermission(FileIOPermissionAccess.AllAccess,filePath);

     using(FileStream fs = new FileStream(filePath, FileMode.Create))
     {
         using (XmlWriter w = XmlWriter.Create(fs))
         {
             w.WriteStartElement("book");
             w.WriteElementString("price", "19.95");
             w.WriteEndElement();
             w.Flush();
         }
     }     
 }
上一篇:c# 将数据报文写入到二进制文件中,如.dat


下一篇:c#-System.IO.IOException:该进程无法访问文件,因为它正在被另一个进程使用