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

ضغظ المجلدات

بدأه KARIMSOFT في 6 مايو 2013 · 3 رد · 475 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيف الحال

هذا الكود يقوم بضغط المجلادات ولا هناك مشكله عند فتح الملف يكون داخلة المسار الكامل للخامد او مسار المجلدات الاصلية من الخادم وانا اريد الملف فقط في الداخل مثال

c:\asf\iugkj\knjh

يكون الناتج بداخل الملف المضغوط

knjh ولي asf\iugkj\knjh

 private void subZip(string sSourceDir, string sDestinationDir, string sRarFileName)
    {
      
        RegistryKey the_Reg = Registry.ClassesRoot.OpenSubKey("Applications\\WinRAR.exe\\Shell\\Open\\Command");
        object the_Obj = the_Reg.GetValue("");
        string the_rar= the_Obj.ToString();
        string the_Info;
        ProcessStartInfo the_StartInfo;
        Process the_Process;
        
        the_Reg.Close();
        
        the_rar = the_rar.Substring(1, the_rar.Length - 7);
        the_Info = " a  " + sRarFileName  + "  " + sSourceDir;
        the_StartInfo = new ProcessStartInfo();

        the_StartInfo.FileName = the_rar;
        the_StartInfo.Arguments = the_Info;
        the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        the_StartInfo.WorkingDirectory = sDestinationDir;
        the_Process = new Process();
        the_Process.StartInfo = the_StartInfo;
        the_Process.Start();
    }

ثانيا ائقاف البرنامج لحظات حتي يتم الانتهام من ما سبق لانه ياخذ لخظات بعد انتهاء الكود السابق

#2

السلام عليكم ...

  1. مسار المجلدات سيبدأ من المجلد الذي طلبت ضغطه (sSourceDir), مرر المسار c:\asf\iugkj للبارمتر  sSourceDir . (اعتقد سعمل).
  2. الموضوع مطروح في ASP.NET  ,  فإذا كنت تريد تشغيل الكود على موقع , ستواجه مشاكل الصلاحيات من حيث الوضول لقيم الــ Registry    و تشغيل الملفات التنفيذية على السيرفر
  3. يفضل استخدام  مكتبات Third Party  مثل (SharpZipLib)  (يوجد License هي GPL  مع Exception  إذا كنت مهتما بهذه الأمور).

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

شكرا اخي حسام اكرمك الله

مشكلة مسار المجلدات تم الحل بتعديل سر البرامتر

the_Info = " a  -ep1 -df -m1 " + sRarFileName  + "  " + sSourceDir;
مشكلة ال registry تم الحل بوضع المسار كامل من القرص الصلب

بقي مشكلة تشغيل الملفات التنفيذية على السيرفر هل يوجد حل

ثانيا ائقاف البرنامج لحظات حتي يتم الانتهام من ما سبق لانه ياخذ لخظات بعد انتهاء الكود السابق

#4

السلام عليكم ..

أهلا بك أخي كريم ...

  1. إذا كان الموقع يعمل على شبكة داخلية فيمكن تغيير اسم المستخدم الذي يعمل خلاله الموقع (أستفسار عن كيفية فتح البيرمشن في سيرفر iis) . أما إذا كنت تنشر الموقع على استضافة , فربما هذا يختلف من استضافة لأخرى ..  يجب مراجعة لوحة التحكم عن خيارات كهذه أو مراسلة الشركة المستضيفة عن هذه الميزة ..
  2. بالنسبة للانتظار  لدينا الدالة WaitForExit في الرابط (http://support.microsoft.com/kb/305368) .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

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