0

私はかなり見回しましたが、sharpziplib を使用して複数の zip ファイルを同じディレクトリに抽出する方法に関する情報はないようです。私はテレリック コントロール RadUpload を使用して 2 つの異なる zip フォルダーをアップロードしています。アップロードすると、同じディレクトリにある zip と同じ名前のフォルダーに自動的に解凍されます。

例: 私は autocorrect.zip と Entertainment.zip を持っています。オートコレクトは「オートコレクト」というフォルダーに解凍され、エンターテインメントは「エンターテインメント」というフォルダーに解凍されます。オートコレクトは最初のボックスにあり、エンターテイメントは 2 番目のボックスにあります。

ただし、抽出フォルダーには「entertainment」のみが表示されます。これは、最初の値「autocorrect」を取り、その後最初の値として「entertainment」も取るため、現在の方法で unzip メソッドが設定されているためだと思います。 .

私のコードの他の部分が役立つと思われる場合は、 unzip メソッドのコードを次に示します。さらに投稿します。

public static void UnZip(string sourcePath, string targetPath)
{
    //Creates instance of fastzip from library ICSharpCode
    ICSharpCode.SharpZipLib.Zip.FastZip fz = new FastZip();
    //Extracts zip from sourcePath to target path which is chosen in the button click methods
    fz.ExtractZip(sourcePath, targetPath, "");
}

編集:これは、zipファイルの保存パスと抽出されたzipの保存パスを使用して解凍を呼び出すボタンメソッドです(1つのzipでは完全に機能しますが、複数のzipでは機能しないことを忘れていました)

 protected void SubmitButton_Click(object sender, EventArgs e)
    {
        //Gets the name of the file being uploaded
        foreach (UploadedFile file in RadUpload1.UploadedFiles)
        {
            fileName = file.GetName();
        }
        //Path where zip files are uploaded
        String savePath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerik\";
        //Adds name of uploaded file onto end of saved path
        savePath += fileName;
        //Path where the extracted files from the uploaded zip are placed
        String unZipPath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerikExtract\";
        unZipPath += fileName;
        //Runs unzipping method
        UnZip(savePath, unZipPath);
4

2 に答える 2

2

あなたのメソッドは、最後のfileNameを取得し、UnZipを1回だけ呼び出すだけでした

したがって、以下のコードは、RadUpload1.UploadedFiles で利用可能な fileName の総数で呼び出します。

protected void SubmitButton_Click(object sender, EventArgs e)
{

String savePath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerik\";

String unZipPath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerikExtract\";


foreach (UploadedFile file in RadUpload1.UploadedFiles)
{
   string fileName = file.GetName();

   UnZip((savePath + fileName),  (unZipPath + fileName) );
}

}
于 2012-07-16T19:57:10.653 に答える
0

これをチェックして、この例を使用してみてください::

http://wiki.sharpdevelop.net/SharpZipLib-Zip-Samples.ashx

これをチェックして、この例を使用してみてください: Unpack a Zip with full control over operation

于 2012-07-16T19:49:04.360 に答える