我有一个执行文件复制的activex控件。我尝试了File.Copy以及使用FileStream进行读写。在关闭Internet Explorer浏览器之前,这两个选项都不会释放句柄。我希望用户能够在复制文件后删除文件。我不希望他们被要求关闭浏览器。为什么这些选项不会释放句柄。
string filename = GetFilename(sourceFilePath);
byte[] buf;
// read
using (var fs = new FileStream(sourceFilePath, FileMode.Open))
{
buf = new byte[fs.Length];
fs.Read(buf, 0, buf.Length);
fs.Close();
}
//write
using (var fs = new FileStream(contentItemDir + "\\" + filename, FileMode.CreateNew))
{
fs.Write(buf, 0, buf.Length);
fs.Close();
}
我正在使用Process Explorer确认没有释放句柄,并且Internet Explorer拥有句柄。