1

当我尝试写入临时文件时,我不断收到以下错误:

该进程无法访问文件“C:\Users\jdoe\AppData\Local\Temp\jdoe.tmp”,因为它正被另一个进程使用。

这些是对文件执行任何操作的唯一方法:

private void LoadData(string filePath)
{
    if (!File.Exists(filePath))
    {
        File.Create(filePath);
        return;
    }

    var fileDetails = new FileInfo(filePath);
    if (fileDetails.Length > 0)
    {
        using (var fileStream = new FileStream(filePath, FileMode.Open))
        {
            // Do stuff...
            fileStream.Close();
        }
    }
}

private void SaveData(string filePath)
{
    using (var fileStream = new FileStream(filePath, FileMode.Create))
    {
        // Do stuff...
        fileStream.Close();
    }
}

什么是锁定文件?

4

2 回答 2

0

结果File.Create(filePath)返回 a FileStream,需要关闭。只需将其更改为以下内容,错误就消失了File.Create()

if (!File.Exists(filePath))
{
    File.Create(filePath).Close();
    return;
}
于 2013-03-08T01:38:17.567 回答
-1

你必须删除代码的第一个块..

因为当你写的时候..如果文件不存在,它将创建文件,或者如果文件已经存在,那么它应该追加..

于 2013-03-08T02:22:37.027 回答