2016-08-25 7 views
0

どうか私のコンソールアプリケーションは、実行中に空の(0バイト)Zipファイルを作成します。しかし、ブレークポイントを設定し、F10を使用してパッキング関数をトラバースすると、zipは正常に作成されます。コンソールアプリケーションで空のzipファイルが作成される

この動作は2台のコンピュータで同じですが、私はすでに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のスニペットを使用し、作成者がファイルを開く際に小さな間違いを犯したように見えます(この方法ではファイルを開くのではなくファイルを再作成しました)。

関連する問題