C# 使用ionic.zip和C解压缩文件后解锁zip文件#

C# 使用ionic.zip和C解压缩文件后解锁zip文件#,c#,zip,C#,Zip,我尝试使用C中的ionic.zip解锁的zip中的文件# 我使用 string zipToUnpack = filename; ExtractFileToDirectory(filename,appPath); 第一次它工作正常,但第二次尝试时,我得到一个IO异常,表示该文件已被其他用户使用。如何从当前进程中解锁此文件?在中似乎找不到提取文件到目录。我在另一个StackOverflow问题中找到了一个同名函数。如果这是您正在使用的实现,您可能需要在ZipFile上调用Dispose,以关闭

我尝试使用C中的ionic.zip解锁的zip中的文件#

我使用

 string zipToUnpack = filename;
 ExtractFileToDirectory(filename,appPath);

第一次它工作正常,但第二次尝试时,我得到一个IO异常,表示该文件已被其他用户使用。如何从当前进程中解锁此文件?

在中似乎找不到
提取文件到目录。我在另一个StackOverflow问题中找到了一个同名函数。如果这是您正在使用的实现,您可能需要在
ZipFile
上调用
Dispose
,以关闭底层文件流

public void ExtractFileToDirectory(字符串zipFileName,字符串outputDirectory)
{
使用(ZipFile zip=ZipFile.Read(zipFileName))
{
CreateDirectory(outputDirectory);
ExtractAll(outputDirectory,ExtractExistingFileAction.OverwriteSilently);
}
}

如果没有,请分享有关如何提取文件的更多详细信息。

我在中似乎找不到
提取文件到目录。我在另一个StackOverflow问题中找到了一个同名函数。如果这是您正在使用的实现,您可能需要在
ZipFile
上调用
Dispose
,以关闭底层文件流

public void ExtractFileToDirectory(字符串zipFileName,字符串outputDirectory)
{
使用(ZipFile zip=ZipFile.Read(zipFileName))
{
CreateDirectory(outputDirectory);
ExtractAll(outputDirectory,ExtractExistingFileAction.OverwriteSilently);
}
}

如果没有,请分享有关如何提取文件的更多详细信息。

欢迎使用。我很确定这就是你真正想要的:不,我想在一个实例中多次打开同一个文件。。在第一次之后,它不允许我..有没有办法强制释放文件句柄或确定上次调用是否创建了应该清除的句柄?@user2407825是的,那是因为它被锁定了。另一个用户对该文件具有独占锁定。您需要做的是在第二次尝试之前显式释放打开文件的句柄。祝你好运我正在图标.Zip中查找该方法,但找不到它。ExtractFileToDirectory是你写的吗?如果是这样的话,如果您包含该方法的源代码,可能会有所帮助。欢迎访问。我很确定这就是你真正想要的:不,我想在一个实例中多次打开同一个文件。。在第一次之后,它不允许我..有没有办法强制释放文件句柄或确定上次调用是否创建了应该清除的句柄?@user2407825是的,那是因为它被锁定了。另一个用户对该文件具有独占锁定。您需要做的是在第二次尝试之前显式释放打开文件的句柄。祝你好运我正在图标.Zip中查找该方法,但找不到它。ExtractFileToDirectory是你写的吗?如果是这样的话,如果你把这个方法的来源包括进来,可能会有所帮助。谢谢c45207,我昨天已经完成了。。我确实打过电话。。它起作用了。。无论如何谢谢你,伙计,你让它工作了,@user2407825。因为这个答案似乎是你的问题的解决方案,请考虑它作为解决方案。(它旁边有一个复选标记,您可以检查。)谢谢c45207,我昨天完成了。。我确实打过电话。。它起作用了。。无论如何谢谢你,伙计,你让它工作了,@user2407825。因为这个答案似乎是你的问题的解决方案,请考虑它作为解决方案。(旁边有一个复选标记,您可以进行检查。)