Здравствуйте, Dan123, Вы писали:
D>Возможно ли прикрутить progressbar к SharpZipLib?
D>Необходимо отобразить общий ход упаковки всех файлов в архив.
примерно так
using (System.IO.FileStream fs = System.IO.File.OpenRead(file))
{
System.IO.FileInfo fi = new System.IO.FileInfo(file);
int size_all_files += (int)fi.Length;
string file_name = System.IO.Path.GetFileName(file);
ICSharpCode.SharpZipLib.Zip.ZipEntry entry =
new ICSharpCode.SharpZipLib.Zip.ZipEntry(file_name);
entry.DateTime = DateTime.Now;
entry.Size = fs.Length;
ICSharpCode.SharpZipLib.Zip.ZipOutputStream s = new ICSharpCode.SharpZipLib.Zip.ZipOutputStream(
System.IO.File.Create("arhiv.zip"));
s.SetLevel(9);
s.PutNextEntry(entry);
int sourceBytes;
do
{
sourceBytes = fs.Read(buffer, 0, buffer.Length);
s.Write(buffer, 0, sourceBytes);
in_arh_size += sourceBytes;
//собственно сам вывод прогресса
panel.Progress("Архивирование {0} (" + file_name + ")", size_all_files, in_arh_size);
} while (sourceBytes > 0);
fs.Flush(); fs.Close();
s.CloseEntry();
s.Finish(); s.Close();
}