Bir projede SharpZipLib kullanıyorum ve bir zip dosyasına bakmak için kullanmanın mümkün olup olmadığını ve eğer içindeki dosyalardan birinin bir aralıkta bir veri modifiye edilmiş olup olmadığını merak ediyorum O dosyayı seçip yeni bir dizine kopyalamak için arıyorum. Bu kimliği bilen biri var mı?SharpZipLib Bir ZIP dosyasının içeriğini inceleyin ve seçin
6
A
cevap
8
Evet, bir zip dosyasının dosyalarını SharpZipLib kullanarak numaralandırmak mümkündür. Dosyaları zip dosyasından da seçebilir ve bu dosyaları diskinizdeki bir dizine kopyalayabilirsiniz. I (daha fazla analiz için) hafızada ZipEntry
depolamak için bir MemoryStream
kullanımı Yukarıdaki örnekte
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);
}*/
}
}
}
}
: Burada
küçük bir örnektir. Ayrıca diskteZipEntry
(belirli ölçütleri karşılarsa) depolayabilirsiniz.
Umut, bu yardımcı olur.
+0
Tam olarak aradığım şey bu, çok takdir! – DukeOfMarmalade
Mümkün olduğundan eminim. Arşivi açmanız ve dosya koleksiyonunun içeriğine bakmak zorunda kalacaksınız. Son değişiklik bilgilerinin yapılıp yapılmadığına bağlı olarak herkes, başka herşeyin mümkün olup olmayacağını belirler. Halka açıklanmamasının sebebi yok, SharpZibLib kütüphanesi buna izin veriyor, bu yüzden buna izin vermeli. Aksi halde, buna izin verecek başka çözümler de vardır. –