基本上,我想创建一个文件(如果不存在),然后向其中写入消息。

if (!File.Exists(filePath + fileName))
    File.Create(filePath + fileName);
StreamWriter sr = new StreamWriter(filePath + fileName,false);

如何处理这个错误?

最佳答案

File.Create打开一个FileStream(http://msdn.microsoft.com/en-us/library/d62kzs03.aspx)。

如您未处理的文件一样,如果从其他句柄(即其他FileStream或整个StreamWriter)执行文件操作,则文件将保持锁定状态,并且由于该情况,对该文件的后续访问将失败。

这段代码演示了如何使用IDisposable这样的FileStream对象:

if (!File.Exists(filePath + fileName))
{
    File.Create(filePath + fileName).Dispose();

    using(StreamWriter sr = new StreamWriter(filePath + fileName,false))
    {

    }
}

关于c# - 使用StreamWriter时,进程无法访问文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14775547/

10-12 12:42
查看更多