2016-08-25 40 views
0

不知何故,我的控制檯應用程序在運行時創建空的(0字節)Zip文件。但是,如果我設置了一個斷點,並使用F10遍歷打包函數,則zip會正常創建。控制檯應用程序創建空的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的壓縮片段,如果你需要它們的話。

+0

你想壓縮文件或目錄嗎? –

+0

「CopyStream」做了什麼?溪流是否潮紅? – ArgusMagnus

+0

@ConnorWright我試圖壓縮一個.jar文件 –

回答

0

那麼我的代碼沒有問題,我發現我的問題在另一個地方,我把文件發送到FTP。我使用了CodeProject的片段,它看起來像作者在打開文件時有一個小錯誤(該方法重新創建文件而不是打開)。

相關問題