PDA

View Full Version : حرفه ای: zip کردن folder



ma_barnamenevis
شنبه 09 فروردین 1393, 08:57 صبح
سلام دوستان

من می خوام یک فولدر که شامل چندین فایل هست رو zip کنم ، مخصوصاً که حجم برخی از پوشه ها بالای 2 گیگا بایت است . (با zip کردن فایل مشکلی ندارم ) ،اگه کسی اطلاعاتی در این مورد داره ممنون می شم کمک کنه .

siroos_friend
شنبه 09 فروردین 1393, 11:00 صبح
خب مشکلی خودم توی زیپ کردن فایل با حجم بالا باهاش مواجه شدم اینه که اول چک کنید که در مقصدتون جای کافی واسه فایل zip وجود داشته باشه. دوم هم اینه که بعد از زیپ یکبار فایلتون رو Verify کنید که سالم باشه. اگه از .net 4.5 استفاده میکنید خودش کلاس زیپ داره و لازم نیست از کامپوننت خارجی استفاده کنید.
امیدوارم به دردتون بخوره

ma_barnamenevis
شنبه 09 فروردین 1393, 11:36 صبح
در مقصد فضای کافی هست ، مشکلم در الگوریتم zip کردن فولدر بخصوص با حجم بالا هست .

NasimBamdad
شنبه 09 فروردین 1393, 11:46 صبح
فکر کنم به جای ZIP از RAR استفاده کنید بهتر هست . برای حجم بالا RAR بهتر جواب میده

shahryari
شنبه 09 فروردین 1393, 12:25 عصر
لطفا الگوریتم که برای زیپ کردن استفاده میکنید را بزارید..
از این کامپوننت (http://dotnetzip.codeplex.com/)هم میتونی استفاده کنی

ma_barnamenevis
شنبه 09 فروردین 1393, 12:53 عصر
publicstaticvoid ZipFolder(string inputFolderPath, string outputPathAndFile)

{


string[] aFilenames = Directory.GetFiles(inputFolderPath);


string outPath = outputPathAndFile;




ZipOutputStream s = newZipOutputStream(File.Create(outPath));



s.SetLevel(0);


for (int i = 0; i < aFilenames.Length; i++)

{


FileStream fs = File.OpenRead(aFilenames[i]);


byte[] buffer = newbyte[fs.Length];

fs.Read(buffer, 0, buffer.Length);


ZipEntry entry = newZipEntry(aFilenames[i]);

s.PutNextEntry(entry);

s.Write(buffer, 0, buffer.Length);

}

s.Finish();

s.Close();



}