C#,将HTTP内容写入FileStream的问题,无法访问关闭的文件
作者:互联网
我试图将HTTP内容写入FileStream,并且在等待CopytoAsync(stream)的行中收到“无法访问关闭文件”错误.如果删除“等待”,它将继续操作,没有任何异常,但是写入的文件大小为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中的Content解决了此问题.
另外,我不再使用CopyToAsync,而是使用普通的File.Move,它对我来说很完美.
var provider = new MultipartFormDataStreamProvider(tempdir);
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var content in provider.FileData)
{
File.Move(content.LocalFileName, serverPath);
}
标签:multithreading,multipartform-data,filestream,c 来源: https://codeday.me/bug/20191026/1940152.html