05-08-13, 07:08 AM
05-08-13, 07:25 AM
بصراحة ماجربت سابقا
ولكن للتعامل مع ملفات الwinrar عندك اكثر من طريقة
1- استعمال مكتبة خاصة
http://www.chilkatsoft.com/rar-dotnet.asp
2- استعمال موجة الاوامر
http://acritum.com/software/manuals/winrar/
تقدر تشوف قائمة الاوامر بالذهاب ل command line mode > commands
بالتوفيق
ولكن للتعامل مع ملفات الwinrar عندك اكثر من طريقة
1- استعمال مكتبة خاصة
http://www.chilkatsoft.com/rar-dotnet.asp
2- استعمال موجة الاوامر
http://acritum.com/software/manuals/winrar/
تقدر تشوف قائمة الاوامر بالذهاب ل command line mode > commands
بالتوفيق
05-08-13, 08:38 PM
جزاك الله خيرا
كثيرا ما يقوم الاخوة باعطائى الحلول بهذه الطريقة لاكن للاسف الخلل يرجع الى فانا غير محترف فى البرمجة & غير موفق فى اللغة الانجليزية
رجاء لو قدرت تعملى مشروع صغير فيه طلبى يبقى جزاك الله خير
كثيرا ما يقوم الاخوة باعطائى الحلول بهذه الطريقة لاكن للاسف الخلل يرجع الى فانا غير محترف فى البرمجة & غير موفق فى اللغة الانجليزية
رجاء لو قدرت تعملى مشروع صغير فيه طلبى يبقى جزاك الله خير
06-08-13, 01:30 AM
ali.alfoly كتب :جزاك الله خيرا
كثيرا ما يقوم الاخوة باعطائى الحلول بهذه الطريقة لاكن للاسف الخلل يرجع الى فانا غير محترف فى البرمجة & غير موفق فى اللغة الانجليزية
رجاء لو قدرت تعملى مشروع صغير فيه طلبى يبقى جزاك الله خير
ههههههههههه كلنا مثلك

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

صورة المثال :
لتحميل المثال :
06-08-13, 03:25 AM
جزاك الله خيرا وجعله فى موازين حسناتك
انا بالفعل اعرف هذا المشروع قد اعطاه لى احد الاخوة جزاهم الله خير فى طلب قديم بخصوص نفس الموضوع
انا اريد التحقق من سلامة الملف والرقم السرى الخاص به
انا بالفعل اعرف هذا المشروع قد اعطاه لى احد الاخوة جزاهم الله خير فى طلب قديم بخصوص نفس الموضوع
انا اريد التحقق من سلامة الملف والرقم السرى الخاص به
06-08-13, 04:20 AM
لايمكنك التأكد من كلمة المرور بمقارنة مباشرة
لاحظ برنامج الونرار، عندما تعطيه كلمة مرور لن يعترض ولكنه يحاول فك الضغط وسيظهر خطأ إذا لم ينجح ، لأنه يستخدم كلمة المرور كمفتاح لفك الضغط
وهذا يدل على ان كلمة المرور تستخدم كعنصر "ميكانيكي"
لاحظ برنامج الونرار، عندما تعطيه كلمة مرور لن يعترض ولكنه يحاول فك الضغط وسيظهر خطأ إذا لم ينجح ، لأنه يستخدم كلمة المرور كمفتاح لفك الضغط
وهذا يدل على ان كلمة المرور تستخدم كعنصر "ميكانيكي"
06-08-13, 04:38 AM
اه فعلا جزاك الله خير ابو يعقوب
06-08-13, 07:09 AM
عادي اخي
حتى لو كنت ضعيف في الانجلينزية حاول
لو حاولت في الموقع الي عطيتك اياه للقيت الجواب
ففي مكتبة ChilkatDotNet2 يوجد العديد من الدوال التي تتعامل مع zip و rar
كما قلت سابقا انني لم اتعامل مع هذه الاشياء قط , ولكن فقط اخذت ساعة من وقتي وتصفحت الموقع ورأيت استخدامات الدوال وشرحها
http://www.chilkatsoft.com/refdoc/csZipRef.html
--
ثم كتبت class لك خصيصا اخي الكريم
وفيها دالتان نحقق لك ماتريده
IsArchiveCorrupted
IsPasswordValid
اولا : حمل المكتبة من المرفقات اذا كانت نسخة الفريم ورك هي 3.5
اذا لم يكن ادخل هنا واختار نسخة الفريم ورك وحمل المكتبة
http://www.chilkatsoft.com/downloads_DotNet.asp
-
ثانيا : اضف المكتبة الى مشروعك من خلال Project > Add reference > Browse
-
ثالث : اضف هذا الكلاس
سي شارب لإفادة الجميع (فالاصل الكود مكتوب بسي شارب)
===
خلاص الان تقدر تستعدي الدوال من اي مكان في الفورم
كود الاستدعاء للدالة IsArchiveCorrupted
سي شارب
=========
والاستدعاء للدالة IsPasswordValid
سي شارب
==
وكما قلت هناك الكثير من الدوال يمكنك استعمالها ومشروحة في الصفحة الي عطيتك اياها
استعمل ترجمة قوقل اذا ماتعرف انجلش
+
في الموقع ايضا شرح لدوال الفئة rar التي تمكنك من التعامل مع ملفات rar
لكن انا استعملت zip لانك طلبت هذا
===
خارج الموضوع
اخواني هناك سؤال بسيط امبي اعرفه بس قلت مايحتاج اسئل لأن مابستفيد
لكن اليوم اكتشفت اني راح استفيد
خلال كتابتي لكود السي شارب عملت دالتي IsArchiveCorrupted ك 2 overload
والسبب اني اريد فقط اضافة بارمتار اختياري للدالة
فتذكرت ايام الفيجوال بيسك ووجود شيئ اسمه optional parameter
ولكن لايوجد هذا في السي شارب واضطررت لعمل دالتين بنفس الاسم كي يحقق مبدأ الoverload
لكن لو كان موجود optional parameter لاختصرت عليي الوقت وعفاني من كتابة الدالة من جديد
فهل يوجد بديل ل optional parameter في سي شارب ؟؟؟؟
--
العكس حصل لي في فيجوال بيسك
استعملت out في السي شارب لإخراج قيمة من الدالة
ولكن لم اجد هذا في الفيجوال بيسك
فهل يوجد out هناك ؟؟ << رغم اني لست مهتما لأني ماشتغل عليها
لكن فقط للإفادة العامة
تحياتي
يالتوفيق
حتى لو كنت ضعيف في الانجلينزية حاول
لو حاولت في الموقع الي عطيتك اياه للقيت الجواب
ففي مكتبة ChilkatDotNet2 يوجد العديد من الدوال التي تتعامل مع zip و rar
كما قلت سابقا انني لم اتعامل مع هذه الاشياء قط , ولكن فقط اخذت ساعة من وقتي وتصفحت الموقع ورأيت استخدامات الدوال وشرحها
http://www.chilkatsoft.com/refdoc/csZipRef.html
--
ثم كتبت class لك خصيصا اخي الكريم
وفيها دالتان نحقق لك ماتريده
IsArchiveCorrupted
IsPasswordValid
اولا : حمل المكتبة من المرفقات اذا كانت نسخة الفريم ورك هي 3.5
اذا لم يكن ادخل هنا واختار نسخة الفريم ورك وحمل المكتبة
http://www.chilkatsoft.com/downloads_DotNet.asp
-
ثانيا : اضف المكتبة الى مشروعك من خلال Project > Add reference > Browse
-
ثالث : اضف هذا الكلاس
PHP كود :
Public Class ZipInfo
Private _zipObj As New Chilkat.Zip()
#Region "password Valid"
Public Function IsPasswordValid(ByVal zipFilePath As String, ByVal possiblePassword As String) As Boolean
If Not System.IO.File.Exists(zipFilePath) Then
Dim ex As New Exception("File Not Founded!")
Throw ex
End If
If System.IO.Path.GetExtension(zipFilePath).ToLower() <> ".zip" Then
Dim ex As New Exception("Not supported " & System.IO.Path.GetExtension(zipFilePath) & "files")
Throw ex
End If
'begin
'checkUnclock
Dim unlocked As Boolean = _zipObj.UnlockComponent("anything")
If Not unlocked Then
Dim ex As New Exception("Cannot UnlockComponent")
Throw ex
End If
'append
_zipObj.AppendZip(zipFilePath)
'is passord valid
_zipObj.DecryptPassword = possiblePassword
Return _zipObj.VerifyPassword()
End Function
#End Region
#Region "IsArchiveCorrupted"
Public Function IsArchiveCorrupted(ByVal zipFilePath As String, Optional ByRef errorText As String = "") As Boolean
If Not System.IO.File.Exists(zipFilePath) Then
Dim ex As New Exception("File Not Founded!")
Throw ex
End If
If System.IO.Path.GetExtension(zipFilePath).ToLower() <> ".zip" Then
Dim ex As New Exception("Not supported " & System.IO.Path.GetExtension(zipFilePath) & "files")
Throw ex
End If
'/checkUnclock
Dim unlocked As Boolean = _zipObj.UnlockComponent("anything")
If Not unlocked Then
Dim ex As New Exception("Cannot UnlockComponent")
Throw ex
End If
_zipObj.OpenZip(zipFilePath)
errorText = _zipObj.LastErrorText
If _zipObj.LastErrorText.Contains("File access error: did not read full requested amount of data.") Then
Return True
Else
Return False
End If
End Function
#End Region
End Class
سي شارب لإفادة الجميع (فالاصل الكود مكتوب بسي شارب)
PHP كود :
public class ZipInfo
{
Chilkat.Zip _zipObj = new Chilkat.Zip();
#region password Valid
public bool IsPasswordValid(string zipFilePath, string possiblePassword)
{
if (!System.IO.File.Exists(zipFilePath))
{
Exception ex = new Exception("File Not Founded!");
throw ex;
}
if (System.IO.Path.GetExtension(zipFilePath).ToLower() != ".zip")
{
Exception ex = new Exception("Not supported " +
System.IO.Path.GetExtension(zipFilePath) + "files");
throw ex;
}
//begin
//checkUnclock
bool unlocked = _zipObj.UnlockComponent("anything");
if (!unlocked)
{
Exception ex = new Exception("Cannot UnlockComponent");
throw ex;
}
//append
_zipObj.AppendZip(zipFilePath);
//is passord valid
_zipObj.DecryptPassword = possiblePassword;
return _zipObj.VerifyPassword();
}
#endregion
#region "IsArchiveCorrupted"
public bool IsArchiveCorrupted(string zipFilePath)
{
if (!System.IO.File.Exists(zipFilePath))
{
Exception ex = new Exception("File Not Founded!");
throw ex;
}
if (System.IO.Path.GetExtension(zipFilePath).ToLower() != ".zip")
{
Exception ex = new Exception("Not supported " +
System.IO.Path.GetExtension(zipFilePath) + "files");
throw ex;
}
////checkUnclock
bool unlocked = _zipObj.UnlockComponent("anything");
if (!unlocked)
{
Exception ex = new Exception("Cannot UnlockComponent");
throw ex;
}
_zipObj.OpenZip(zipFilePath);
if (_zipObj.LastErrorText.Contains("File access error: did not read full requested amount of data."))
{
return true;
}
else
{
return false;
}
}
public bool IsArchiveCorrupted(string zipFilePath , out string errorText)
{
if (!System.IO.File.Exists(zipFilePath))
{
Exception ex = new Exception("File Not Founded!");
throw ex;
}
if (System.IO.Path.GetExtension(zipFilePath).ToLower() != ".zip")
{
Exception ex = new Exception("Not supported " +
System.IO.Path.GetExtension(zipFilePath) + "files");
throw ex;
}
//begin
////checkUnclock
bool unlocked = _zipObj.UnlockComponent("anything");
if (!unlocked)
{
Exception ex = new Exception("Cannot UnlockComponent");
throw ex;
}
_zipObj.OpenZip(zipFilePath);
errorText = _zipObj.LastErrorText;
if (_zipObj.LastErrorText.Contains("File access error: did not read full requested amount of data."))
{
return true;
}
else
{
return false;
}
}
#endregion
}
===
خلاص الان تقدر تستعدي الدوال من اي مكان في الفورم
كود الاستدعاء للدالة IsArchiveCorrupted
PHP كود :
Dim zip As New ZipInfo()
Try
If zip.IsArchiveCorrupted("C:\Users\Fti\Desktop\Master uploader.zip") Then
MessageBox.Show("الملف معطوب")
Return
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
سي شارب
PHP كود :
ZipInfo zip = new ZipInfo();
try
{
if (zip.IsArchiveCorrupted(@"C:\Users\Fti\Desktop\Master uploader.zip"))
{
MessageBox.Show("الملف معطوب");
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
=========
والاستدعاء للدالة IsPasswordValid
PHP كود :
Dim zip As New ZipInfo()
Try
Dim password As String = "1234"
If zip.IsPasswordValid("C:\Users\Fti\Desktop\Master uploader.zip", password) Then
MessageBox.Show("كلمة السر صحيحة")
Else
MessageBox.Show("كلمة السر غير صحيحة")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
سي شارب
PHP كود :
ZipInfo zip = new ZipInfo();
try
{
string password = "1234";
if (zip.IsPasswordValid(@"C:\Users\Fti\Desktop\Master uploader.zip", password))
{
MessageBox.Show("كلمة السر صحيحة");
}
else
{
MessageBox.Show("كلمة السر غير صحيحة");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
==
وكما قلت هناك الكثير من الدوال يمكنك استعمالها ومشروحة في الصفحة الي عطيتك اياها
استعمل ترجمة قوقل اذا ماتعرف انجلش
+
في الموقع ايضا شرح لدوال الفئة rar التي تمكنك من التعامل مع ملفات rar
لكن انا استعملت zip لانك طلبت هذا
===
خارج الموضوع
اخواني هناك سؤال بسيط امبي اعرفه بس قلت مايحتاج اسئل لأن مابستفيد
لكن اليوم اكتشفت اني راح استفيد
خلال كتابتي لكود السي شارب عملت دالتي IsArchiveCorrupted ك 2 overload
والسبب اني اريد فقط اضافة بارمتار اختياري للدالة
فتذكرت ايام الفيجوال بيسك ووجود شيئ اسمه optional parameter
ولكن لايوجد هذا في السي شارب واضطررت لعمل دالتين بنفس الاسم كي يحقق مبدأ الoverload
لكن لو كان موجود optional parameter لاختصرت عليي الوقت وعفاني من كتابة الدالة من جديد
فهل يوجد بديل ل optional parameter في سي شارب ؟؟؟؟
--
العكس حصل لي في فيجوال بيسك
استعملت out في السي شارب لإخراج قيمة من الدالة
ولكن لم اجد هذا في الفيجوال بيسك
فهل يوجد out هناك ؟؟ << رغم اني لست مهتما لأني ماشتغل عليها
لكن فقط للإفادة العامة

تحياتي
يالتوفيق
06-08-13, 07:56 AM
ملاحظة : المكتبة الي فوق لنسخة فريم ورك 3.5 ولن تعمل على اي اصدار اخر
هنا توجد المكتبة لجميع نسخ الفريم ورك
http://www.chilkatsoft.com/downloads_DotNet.asp
هنا توجد المكتبة لجميع نسخ الفريم ورك
http://www.chilkatsoft.com/downloads_DotNet.asp
06-08-13, 08:26 AM
جزاك الله خير اخى الحبيب
يعلم الله تعالى كم انا سعيد جدا جدا جدا
منذ اكثر من شهرين وانا ابحث عن احد يساعدنى فى هذا الامر وها قد بعثك الله بعد طوال انتظار
الحمد لله رب العالمين
وجزاك الله خيرا
انا ذاكرت الكلاس كويس وفهمت منه حجات كتير جدا
وارجو منك تكرما شرح النقاط الاتيه
يعلم الله تعالى كم انا سعيد جدا جدا جدا
منذ اكثر من شهرين وانا ابحث عن احد يساعدنى فى هذا الامر وها قد بعثك الله بعد طوال انتظار
الحمد لله رب العالمين
وجزاك الله خيرا
انا ذاكرت الكلاس كويس وفهمت منه حجات كتير جدا
وارجو منك تكرما شرح النقاط الاتيه