ZipArchive ExtractToFile延迟写入磁盘

本文关键字:磁盘 延迟 ExtractToFile ZipArchive | 更新日期: 2023-09-27 17:57:26

我正在尝试编写一些代码,将几个dll封装到我的dll中。在我的解决方案中,其中一个项目负责将内部zip资源提取到第二个项目使用的输出dll中。仅在提取完成之后才执行对第二项目的引用。我的问题是,在第一次执行时,我得到了FileNotFoundException的异常。我认为问题是ZipArchive ExtractToFile在写入内容刷新到磁盘之前返回。

我想听听关于这个主题的一些想法(我想在提取后增加一些睡眠,但感觉不太好…)

我的提取代码是:

private static void ExtractToDirectory(ZipArchive archive, string executionPath)
{
    foreach (var entry in archive.Entries)
    {
        if (!File.Exists(Path.Combine(executionPath,entry.Name)))
        {
            entry.ExtractToFile(Path.Combine(executionPath, entry.Name));
        }
    }
}

ZipArchive ExtractToFile延迟写入磁盘

如何在第一个项目的构造函数结束时引用第二个项目?在第一个项目解压缩文件之前,第二个项目可能会尝试读取一些静态构造函数或方法中的文件。你实际有多大的ZIP文件,其中有多少文件?