c# 使用File.Create创建文件后,正由另一进程使用,因此该进程无法访问此文件解决办法。

我在创建文件时,使用文件是否存在方法判断。不存在就创建,存在跳过,这样看着没有什么问题。

if (!File.Exists(newFile))
 {
      File.Create(newFile);
}

接下来我就要像该文件序列化存储信息了。程序走到这步时报错,说文件正由另一进程使用,因此该进程无法访问此文件。

 XmlSerializer pXmlSerizlizeTemp = new XmlSerializer(typeof(PropertyGridModel));
     using (FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write))
{
     pXmlSerizlizeTemp.Serialize(fs, tppModel);
}

经查询, System.IO.File.Create(fileName)返回的类型是FileStream。就是说文件创建后没有释放。在作用域内一直被占用。所以继续读取文件就会报错。问题好解决,关闭掉创建的文件流就可以了,提供两个方法

方法1:

if (!File.Exists(newFile))
 {
      File.Create(newFile).Close();
}

方法2:

if (!File.Exists(newFile))
 {
      using(File.Create(newFile))
    {
        // 读写文件操作。
    }
}

问题得到解决。

你可能感兴趣的:(c#,线程UI,c#)