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)が返されますが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 に答える