私はプロジェクトで SharpZipLib を使用していますが、それを使用して zip ファイル内を調べることができるかどうか疑問に思っています。その中のファイルの 1 つに、検索している範囲で変更されたデータがある場合は、そのファイルを選択してコピーしますそれを新しいディレクトリに?これが可能であることを知っている人はいますか?
8102 次
1 に答える
13
はい、SharpZipLib を使用して zip ファイルのファイルを列挙することは可能です。zip ファイルからファイルを選択して、それらのファイルをディスク上のディレクトリにコピーすることもできます。
以下に小さな例を示します。
using (var fs = new FileStream(@"c:\temp\test.zip", FileMode.Open, FileAccess.Read))
{
using (var zf = new ZipFile(fs))
{
foreach (ZipEntry ze in zf)
{
if (ze.IsDirectory)
continue;
Console.Out.WriteLine(ze.Name);
using (Stream s = zf.GetInputStream(ze))
{
byte[] buf = new byte[4096];
// Analyze file in memory using MemoryStream.
using (MemoryStream ms = new MemoryStream())
{
StreamUtils.Copy(s, ms, buf);
}
// Uncomment the following lines to store the file
// on disk.
/*using (FileStream fs = File.Create(@"c:\temp\uncompress_" + ze.Name))
{
StreamUtils.Copy(s, fs, buf);
}*/
}
}
}
}
上記の例では、 を使用してをメモリMemoryStream
に保存ZipEntry
します (詳細な分析のために)。ZipEntry
(特定の基準を満たしている場合) をディスクに保存することもできます。
お役に立てれば。
于 2011-11-29T19:17:50.883 に答える