2012-02-24 8 views
1

D:\Nagaraj\Dotnet\Zipfile\Zipfile\Filebuild\Hiからzipファイルを生成しています。フォルダ内に2つのtxtファイルがあります。zipファイル内のフォルダパスを削除する方法。zipファイル内のtxtファイルのみが必要です

しかし、問題は、zipファイル内にはD:\Nagaraj\Dotnet\Zipfile\Zipfile\Filebuild\Hiのパスがあり、の中にはというフォルダが2つのtxtファイルであるということです。

今度は、パスD:\Nagaraj\Dotnet\Zipfile\Zipfile\Filebuild\Hiを削除し、アーカイブのルートにある2txtファイルを使ってHi.zipを直接生成する必要があります。私はSharpZipLibを使用してアーカイブを作成しています。

protected void Page_Load(object sender, EventArgs e) 
{ 
    StartZip("D:/Nagaraj/Dotnet/Zipfile/Zipfile/Filebuild/Hi",".zip");   
} 

public void StartZip(string directory, string zipFileName) 
{ 
    ZipFile z = ZipFile.Create(directory + zipFileName); 
    z.BeginUpdate(); 
    string[] filenames = Directory.GetFiles(directory); 
    foreach (string filename in filenames) 
    { 
     z.Add(filename); 
    } 
    z.CommitUpdate(); 
    z.Close(); 
} 
+0

何のzipライブラリを使用しているの? –

+0

私はsharpziplibライブラリを使用しています – user1225988

答えて

1

問題は、zipファイルの作成方法と同じです。 Addへの呼び出しでファイルが存在するディレクトリを渡します。

代わりに、ちょうどPath.GetFileName方法使用してファイル名を渡す:あなたは

public void StartZip(string directory, string zipFileName) 
{ 
    ZipFile z = ZipFile.Create(directory + zipFileName); 
    z.BeginUpdate(); 

    string[] filenames = Directory.GetFiles(directory); 

    foreach (string filename in filenames) 
    { 
     z.Add(Path.GetFileName(fileName)); 
    } 
    z.CommitUpdate(); 
    z.Close(); 
} 
+0

私は上記のコードを使用しています..問題は..私は作成されたかどうか、または作成されたかどうかは、ZIPファイルを見つけることができません – user1225988

+0

あなたは私を許す必要がありますが、私はあなたのコメントを理解すると思います。 zipファイルを作成した後で、そのzipがディスク上でどこに作成されたのか分かりませんか? –

+0

ya .....どのパスを作成したのか分かります。これは "C:\ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE"というパスに作成されていますが、問題があります。そのファイル.....エラー "損傷したデータ"を表示します – user1225988

関連する問題