2016-05-29 8 views
0

さまざまなMIMEタイプのファイルを含むフォルダをダウンロードします。私の仮想パスは "http://localhost/attachments/"です。私のサブフォルダは「証明書/ ID」です。だからグリッドをクリックすると、IDをダウンロードページに渡します。しかし、仮想パスのような例外は無効です。 'http://localhost/attachments/certificates/id)'asp.netを使用してサーバーからzipファイルを含むフォルダをダウンロードするにはC#

以下のコードでは、Request.Params [0]はidを意味し、これはzipフォルダを作成するendlevelフォルダを示しています。

ご指摘いただければ幸いです。

  using (ZipFile zip = new ZipFile()) 
      { 
       string VirtualPath = ConfigurationManager.AppSettings.Get("AttachmentsShowVirtualPath"); 
       string Path = string.Empty; 
       Path = "certificates" + "/"; 

       string folderPath = VirtualPath + Path + Request.Params[0] + "/"; 

       zip.CompressionLevel = CompressionLevel.None; 

       zip.AddSelectedFiles(".", Server.MapPath(folderPath), "", false); 
       zip.Save(Response.OutputStream); 
      } 
+0

folderPath文字列が正しいことを確認しましたか?あなたは例外を受けていますか? – user3378165

+0

この行では、仮想パスが無効です。 zip.AddSelectedFiles( "。"、Server.MapPath(folderPath)、 ""、false);しかし、私が指すフォルダパスは正しいです。 –

答えて

1

まず、DotNetZipを使用していますか?私はそれを使用しませんが、変更してみてくださいことがない.*.*

ファイルを取得していない場合は、eveythingが正しく指しているかどうかを確認するためDirectory.GetFilesをしようとあなたのコードは、ディレクトリ上の許可を読んだhttps://msdn.microsoft.com/en-us/library/07wt70x2%28v=vs.110%29.aspx

または、https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile%28v=vs.110%29.aspxの公式Zipクラスを使用してください。ZipFile.CreateFromDirectory

+0

あなたの提案をありがとう。私は、nugetのIonoc.zipパッケージを使用し、以下のライブラリファイルを含んでいます。 "Ionic.Zipを使用する";私はあなたの提案を適用した後であなたに知らせます。 –

+0

ありがとうJuan ..公式のdocsリンクを通して解決策を得ました –

+0

あなたは歓迎された仲間です。 –

関連する問題