PDA

View Full Version : زیپ کردن همه ی فایل های درون بک پوشه بصورت جدا



elderado
دوشنبه 04 دی 1391, 15:40 عصر
با سلام خدمت دوستان و مهندسین عزیز

دوستان چطور میشه نرم افزاری نوشت که فایل های درون یک پوشه رو با یک دستور بصورت جدا جدا زیپ کنه؟

برای مثال یه پوشته شامل فایل هایی هست به نام:
1
2
3
و...
بعد از صادر شدن دستور زیپ شدن توسط کاربر این فایلها به این صورت زیپ شده باشند:
1.zip
2.zip
3.zip
و...

ممنونم از راهنمایی شما

morteza271
دوشنبه 04 دی 1391, 15:57 عصر
با استفاده از دستور زیر لیست فایل های داخل پوشه رو بدست بیارین :
string[] strFiles = System.IO.Directory.GetFiles("Path");
بعد توی یه حلقه تک تک فایل ها رو به زیپ تبدیل کنید.
foreach (var str in strFiles)
{
// Your code.
}
از سوالتون احساس کردم زیپ کردن رو بلدین. اگه اشتباه میکنم بگین تا بهتون بگم چطوریه...

elderado
دوشنبه 04 دی 1391, 16:03 عصر
ممنونم دوست عزیز
من زیپ کردن رو هم بلد نیستم
اگه لطف کنید و بهم یاد بدید ممنون میشم

morteza271
دوشنبه 04 دی 1391, 16:12 عصر
من معمولا از dll زیر برای اینکار استفاده میکنم.
97178
اینم کدش :
zipper.compression.Zip.Compress("D:\\Test.mp3", "D:\\Test.zip");

اول فایل dll رو به رفرنس های پروژتون اضافه کنید و بعد از کد بالا استفاده کنید.
موفق باشید.

elderado
دوشنبه 04 دی 1391, 16:30 عصر
ممنونم دوست عزیز
این کار رو چجوری میشه برای همه ی فایل های یک پوشه بصورت یک جا انجام داد؟

یا میشه یه کاری کرد که با سی شارپ از نرم افزار وین رار برای زیپ کردن تک تک فایل ها استفاده کرد؟؟؟

هر چقدر که طول بکشه مهم نیست

ممنونم

morteza271
دوشنبه 04 دی 1391, 17:58 عصر
خواهش میکنم.

این کار رو چجوری میشه برای همه ی فایل های یک پوشه بصورت یک جا انجام داد؟
یعنی همه فایل ها رو یکی کنه؟
ببینید این کدی که گذاشته بودم میتونه به صورت دیگه ای فراخوانی بشه. مثلا اینکه پارامتر اول رو میتونید یک آرایه بهش پاس بدین. که این ارایه باید لیست ادرس های فایلها باشه.
مثلا در همین مثالی که اول گذاشتم میشه :
foreach (var str in strFiles)
{
zipper.compression.Zip.Compress(strFiles, "D:\\Test.zip");
}
با این کد تمام فایلهای داخل یک پوشه رو به یه فایل zip به اسم Test تبدیل میکنه.


یا میشه یه کاری کرد که با سی شارپ از نرم افزار وین رار برای زیپ کردن تک تک فایل ها استفاده کرد؟؟؟
راستش من تا الان اینکار رو نکردم و نمیدونم میشه یا نه...

موفق باشید

elderado
دوشنبه 04 دی 1391, 19:16 عصر
نه خیر دوست عزیز
شما سوال بنده رو متوجه نشدید
من میخوام همه ی فابل های درون یک پوشه بصورت تک تک زیپ بشه
توی پست اول مثال زدم
برای این کار باید چیکار کنم؟؟؟

morteza271
دوشنبه 04 دی 1391, 22:21 عصر
نه خیر دوست عزیز
شما سوال بنده رو متوجه نشدید
من میخوام همه ی فابل های درون یک پوشه بصورت تک تک زیپ بشه
توی پست اول مثال زدم
برای این کار باید چیکار کنم؟؟؟
خوب من اینو که همون اول هم گفتم :
اینطوری :
foreach (var str in strFiles)
{
zipper.compression.Zip.Compress(str, "D:\\Test.zip");
}

elderado
دوشنبه 04 دی 1391, 23:50 عصر
از توجه شما ممنونم دوست عزیز
این کد کار نمیکنه
کامپایلر به overload گیر میده
باید اولین پارامتر ارسالی این تابع آرایه ای باشه که همه ی اونها رو یک جا زیپ کنه
لطفا چک کنید
ممنونم