DotNetZip或C ++中是否有函数来关闭打开的.zip文件?

时间:2019-03-25 14:21:31

标签: c++ dotnetzip

我要解压缩.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函数,并且在代码块结束后也不会关闭。

0 个答案:

没有答案