SystemIO: процесс не может получить доступ к файлу X, потому что он используется другим процессом (тот же процесс) - PullRequest
0 голосов
/ 26 апреля 2020

Я получаю сообщение об ошибке The process cannot access the file X because it is used by another process, и я почти уверен, что это тот же процесс, потому что я проверял все остальные открытые приложения.

В этот раз я использую этот файл.

...
string jsonString;
jsonString = JsonSerializer.Serialize(hardware);
System.IO.File.WriteAllText(Directory.GetCurrentDirectory().ToString() + @"\HardwareInfo.json", jsonString);
// ^^ This is where I get the exception ^^
...
...
var uploadFile = path + @"\HardwareInfo.json";
    using (var localStream = File.OpenRead(uploadFile))
    {
        await client.UploadAsync(localStream, Path.GetFileName(uploadFile));
    }
...

Не знаю, имеет ли это значение, но он используется асинхронно во втором методе.

Заранее спасибо.

1 Ответ

1 голос
/ 26 апреля 2020

Редактировать без блокировки:

     using (var memStream = new MemoryStream) 
     {
        using (var localStream = File.OpenRead(uploadFile))
        {
            localStream.CopyTo(memStream);
        }

        await client.UploadAsync(memStream, Path.GetFileName(uploadFile));
     }
...