【发布时间】:2013-07-04 10:28:09
【问题描述】:
我使用 lib Nunrar site 提取了一个 .rar 文件:
RarArchive.WriteToDirectory(fs.Name, Path.Combine(@"D:\DataDownloadCenter", path2), ExtractOptions.Overwrite);
解压可以正常工作,但是我无法在提取操作后删除原始压缩文件
System.IO.File.Delete(path);
因为文件是被另一个进程使用 孔函数:
try
{
FileStream fs = File.OpenRead(path);
if(path.Contains(".rar")){
try
{
RarArchive.WriteToDirectory(fs.Name, Path.Combine(@"D:\DataDownloadCenter", path2), ExtractOptions.Overwrite);
fs.Close();
}
catch { }
}
catch { return; }
finally
{
if (zf != null)
{
zf.IsStreamOwner = true; // Makes close also shut the underlying stream
zf.Close(); // Ensure we release resources
}
}
try
{
System.IO.File.Delete(path);
}
catch { }
那么我可以在解压后删除压缩文件吗?
【问题讨论】:
-
fs的类型是什么(您在哪里使用fs.Name)?我对图书馆不熟悉,但您似乎打开了FileStream并没有关闭它。 -
这是一个
FileStream,我在删除操作之前做了fs.Close()
标签: c# .net io delete-file