আমি জানি এটি একটি পুরানো থ্রেড, তবে আমি এই বিষয়ে কিছু দরকারী তথ্য পোস্ট করা থেকে দূরে থাকতে পারি না। আমি জিপ প্রশ্নটি অনেক উপরে উঠতে দেখছি এবং এটি প্রায় সাধারণ প্রশ্নের বেশিরভাগ উত্তর দেয়।
৪.৫ + ব্যবহারের কাঠামোগত সমস্যাগুলি সম্পর্কে জানতে ... এটি হ'ল জাইপ-অলিভারেস দ্বারা নির্মিত একটি জিপস্টোরার শ্রেণি: https://github.com/jaime-olivares/zipstorer , তিনি এই শ্রেণিটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ যোগ করেছেন ভাল এবং পাশাপাশি একটি নির্দিষ্ট ফাইলের নাম কীভাবে অনুসন্ধান করতে হবে তার একটি উদাহরণও যুক্ত করেছে।
এবং এটি কীভাবে ব্যবহার করতে হয় এবং নির্দিষ্ট ফাইল এক্সটেনশনের মাধ্যমে পুনরাবৃত্তি করার জন্য উদাহরণ হিসাবে আপনি এটি করতে পারেন:
#region
/// <summary>
/// Custom Method - Check if 'string' has '.png' or '.PNG' extension.
/// </summary>
static bool HasPNGExtension(string filename)
{
return Path.GetExtension(filename).Equals(".png", StringComparison.InvariantCultureIgnoreCase)
|| Path.GetExtension(filename).Equals(".PNG", StringComparison.InvariantCultureIgnoreCase);
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
//NOTE: I recommend you add path checking first here, added the below as example ONLY.
string ZIPfileLocationHere = @"C:\Users\Name\Desktop\test.zip";
string EXTRACTIONLocationHere = @"C:\Users\Name\Desktop";
//Opens existing zip file.
ZipStorer zip = ZipStorer.Open(ZIPfileLocationHere, FileAccess.Read);
//Read all directory contents.
List<ZipStorer.ZipFileEntry> dir = zip.ReadCentralDir();
foreach (ZipStorer.ZipFileEntry entry in dir)
{
try
{
//If the files in the zip are "*.png or *.PNG" extract them.
string path = Path.Combine(EXTRACTIONLocationHere, (entry.FilenameInZip));
if (HasPNGExtension(path))
{
//Extract the file.
zip.ExtractFile(entry, path);
}
}
catch (InvalidDataException)
{
MessageBox.Show("Error: The ZIP file is invalid or corrupted");
continue;
}
catch
{
MessageBox.Show("Error: An unknown error ocurred while processing the ZIP file.");
continue;
}
}
zip.Close();
}