Console Application创建空的zip文件

时间:2016-08-25 17:42:39

标签: c# zip

我的控制台应用程序在运行时会以某种方式创建空(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提供压缩片段。

1 个答案:

答案 0 :(得分:0)

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