Używam SharpZipLib w projekcie i zastanawiam się, czy można go wykorzystać do obejrzenia pliku zip, a jeśli jeden z plików ma zmodyfikowane dane w zakresie Poszukuję następnie, aby wybrać ten plik i skopiować go do nowego katalogu? Czy ktoś wie, że to jest możliwe?SharpZipLib Sprawdzanie i wybieranie zawartości pliku ZIP
6
A
Odpowiedz
8
Tak, możliwe jest wyliczenie plików pliku zip przy użyciu SharpZipLib. Możesz także wybrać pliki z pliku zip i skopiować te pliki do katalogu na dysku.
Oto mały przykład:
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);
}*/
}
}
}
}
W powyższym przykładzie użyć MemoryStream
przechowywać ZipEntry
pamięci (do dalszej analizy). Można również zapisać na dysku ZipEntry
(jeśli spełnia on określone kryteria).
Hope, to pomaga.
+0
To jest dokładnie to, czego szukałem, bardzo doceniane !! – DukeOfMarmalade
Jestem pewien, że jest to możliwe. Musiałbyś otworzyć archiwum i przyjrzeć się zawartości zbioru plików. W zależności od tego, czy informacje o ostatniej modyfikacji zostaną upublicznione, ustalą, czy będziesz w stanie zrobić wszystko inne. Nie wiem, dlaczego nie zostanie upubliczniony, biblioteka SharpZibLib opiera się na tym, więc powinna również na to pozwolić. W przeciwnym razie zawsze istnieją inne rozwiązania, które by na to pozwoliły. –