الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ضغط الملفات

مغلق
بدأه TarekNajem04 في 14 ديسمبر 2005 · 2 رد · 696 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

هكذا يتم ضغط الملفات في الـ #C وهذه الخوارزمية هي نفسها المتبعة في نظام التشغيل وهي فعالة عند ضغط ملفات نصية ذات حروف متكررة

        public void GZipCompress(string filename)
        {            
            
            FileStream infile = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
            byte[] buffer = new byte[infile.Length];            
            int count = infile.Read(buffer, 0, buffer.Length);
            if (count != buffer.Length)
            {
                infile.Close();
                Console.WriteLine("Test Failed: Unable to read data from file");
                return;
            }
            infile.Close();

            string CompressedFileName = Path.ChangeExtension(filename, ".ZIP");
            FileStream Out = File.Create(CompressedFileName);

            GZipStream CompressedzipStream = new GZipStream(Out, CompressionMode.Compress, true);
            CompressedzipStream.Write(buffer, 0, buffer.Length);
            
            CompressedzipStream.Close();
            Out.Close();
        }

عملية فك ضغط الملفات

        public void GZipDecompress(string filename)
        {

            FileStream infile = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);



            string DecompressedFileName = Path.ChangeExtension(filename, ".UNZIP");
            FileStream Out = File.Create(DecompressedFileName);

            GZipStream CompressedzipStream = new GZipStream(infile, CompressionMode.Decompress, true);


            int offset = 0;
            byte[] buffer = new byte[100];

            while (true)
            {
                int bytesRead = CompressedzipStream.Read(buffer, 0, 100);
                if (bytesRead == 0)
                {
                    break;
                }
                Out.Write(buffer, offset, bytesRead);
            }


            infile.Close();
            CompressedzipStream.Close();
            Out.Close();
        }

لا تنسى أنه مثال على عملية ضغط وفك طغط الملفات أي لعمل برنامج عملي بحاجة لمزيد من العمل فهذه البداية ومنكم النهاية

أتمنى لكم التوفيق

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#2

الله يسعدك في الدنيا والآخرة

"إن الذين آمنوا وعملوا الصالحات كانت لهم جنات الفردوس نزلا"

هذا الموضوع مغلق.

مواضيع مشابهة