C#,将 HTTP 内容写入 FileStream 时出现问题,无法访问已关闭的文件
C# , Issue with writing HTTP content into FileStream, Cannot access a closed file
我正在尝试将 HTTP 内容写入 FileStream,但在我执行 await 的那一行收到错误消息“无法访问关闭文件”复制到异步(流)。如果我删除“await”,它将毫无例外地继续操作,但是写入的文件大小为0KB。知道我在哪里犯错了吗?
var provider = new MultipartFormDataStreamProvider(tempdir);
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var content in provider.Contents)
{
using (var stream = new FileStream(serverPath, FileMode.Create, FileAccess.ReadWrite))
{
await content.CopyToAsync(stream);
}
}
我通过使用 FileData 属性 而不是 MultipartFormDataStreamProvider 中的内容解决了这个问题。
此外,我不再使用 CopyToAsync,而是使用普通的 File.Move,它非常适合我。
var provider = new MultipartFormDataStreamProvider(tempdir);
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var content in provider.FileData)
{
File.Move(content.LocalFileName, serverPath);
}
我正在尝试将 HTTP 内容写入 FileStream,但在我执行 await 的那一行收到错误消息“无法访问关闭文件”复制到异步(流)。如果我删除“await”,它将毫无例外地继续操作,但是写入的文件大小为0KB。知道我在哪里犯错了吗?
var provider = new MultipartFormDataStreamProvider(tempdir);
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var content in provider.Contents)
{
using (var stream = new FileStream(serverPath, FileMode.Create, FileAccess.ReadWrite))
{
await content.CopyToAsync(stream);
}
}
我通过使用 FileData 属性 而不是 MultipartFormDataStreamProvider 中的内容解决了这个问题。
此外,我不再使用 CopyToAsync,而是使用普通的 File.Move,它非常适合我。
var provider = new MultipartFormDataStreamProvider(tempdir);
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var content in provider.FileData)
{
File.Move(content.LocalFileName, serverPath);
}