控制台应用程序创建空zip文件

本文关键字:zip 文件 创建 应用程序 控制台 | 更新日期: 2023-09-27 18:03:55

不知何故,我的控制台应用程序在运行时创建了空(0字节)Zip文件。但是,如果我设置一个断点,并使用F10遍历打包函数,zip将正常创建。

这种行为在两台计算机上是相同的,我已经尝试过用DotNetZip和SharpZipLib压缩,但没有效果。

压缩函数(使用System.IO.Packaging)如下:

private static void CreateModVersionZip(string path, string zipname)
{
    using (Package zip = System.IO.Packaging.Package.Open(zipname, FileMode.OpenOrCreate))
    {
        string destFilename = ".''mods''" + Path.GetFileName(path);
        Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative));
        if (zip.PartExists(uri))
        {
            zip.DeletePart(uri);
        }
        PackagePart part = zip.CreatePart(uri, "", CompressionOption.Normal);
        using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
        {
            using (Stream dest = part.GetStream())
            {
                CopyStream(fileStream, dest);
            }
        }
    }
}

如何使其正常工作?

如果您需要,我可以提供SharpZipLib和DotNetZip的压缩片段。

控制台应用程序创建空zip文件

在我的代码中没有问题,我在另一个地方发现了我的问题,我将文件发送到FTP。我使用了来自CodeProject的代码片段,看起来作者在打开文件时犯了一个小错误(该方法重新创建了文件,而不是打开)。