我要解压缩.zip文件的集合,然后在完成后尝试删除它们。
要删除它们,我必须先以某种方式关闭它们。
我一直在尝试使用DotNetZip库中的Dispose()函数,但是在编译时出现错误“ Dispose不是Ionic :: Zip :: Zipfile的成员”。 DotNetZip库的仅此功能似乎给我带来了麻烦,根据Visual Studio的数据,它只有1个重载。
我还尝试将删除zip文件的位置移到打开zip文件的代码块之外(据我所知,代码块的末尾应关闭该文件)
我也尝试过简单地忽略该问题,并在程序末尾删除文件。此方法删除文件中的 most 个,并删除除最近打开的文件之外的所有文件。
另外,在阻止之后停止程序仍然阻止我手动删除文件,说它仍在使用中。
这是我要关闭文件的功能:
std::string UNZip(std::string RES, std::string SRC) {
if (fileExists(SRC)) {
{
System::String^ Source = msclr::interop::marshal_as<System::String^>(SRC), ^Result = msclr::interop::marshal_as<System::String^>(RES);
IZ::ZipFile ^zip = gcnew IZ::ZipFile(Source);
zip->ExtractAll(Result, IZ::ExtractExistingFileAction OVERWRITE_HIDDEN);
zip->Dispose();
}
}
else { return "-1"; }
fileDelete(SRC);
return RES;
}
程序应该关闭文件,以便我可以将其删除。
现在,它无法识别dispose函数,并且在代码块结束后也不会关闭。