【发布时间】:2011-11-10 14:41:53
【问题描述】:
我有以下代码:
using (MemoryStream str = new MemoryStream())
{
Program.api.GetDocument(result, str);
using (FileStream fileStream = File.Create(filePath))
{
str.WriteTo(fileStream);
}
}
每当写入文件时,它总是在之后被锁定 - 尝试删除或修改它会导致 Windows 告诉我该文件正在使用中,即使在关闭我的应用程序之后也是如此。我错过了什么吗?
【问题讨论】:
-
这个用法看起来不错。你确定没有更多代码处理
filePath? -
我认为您可能缺少
str.Position = 0;但这不会锁定文件流 -
我同意指定的代码不会在代码的最后 } 之后导致文件锁定。一定是有别的原因造成的。即使 using 语句中的异常也会取消锁定,afaik。
-
“即使在关闭我的应用程序之后”意味着这不是您的应用程序的错。当您终止它时,您的进程的所有打开的句柄都会关闭。所以它一定是其他一些程序让它保持打开状态。
标签: c# filestream memorystream