تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] فكرة نقل وضغط ملفات
#1
بسم الله الرحمن الرحيم
-----------------------------
عندي فكرة لكن لا اعرف كيفية تطبيقها ساقولها واريد شخص ان يطبق الاكواد (اتمنا ان اكون ضيف خفيف عليكم )
-------------------------------------
نبدء بالفكرة اولا اريد عند الضغط علي "زر ما في البرنامج" يقوم البرنامج بفتح اداة SaveFileDingol
ويختار البرنامج اسم الملف وليكن Test وستكون الصيغة dll

عند الضغط علي حفظ يقوم البرنامج بضغط كافة الملفات التي في هذا الرابط "H:\" مثلا

ويضعها في شكل dll في المكان الذي اختاره الشخص
------------------------------------
وهناك زرار اخر فيه
اداة
LiodFileDingol
وفيها المستخدم يختار الملف الذي تم حفظه من قبل بعد الاختيار

يقوم البرنامج بحذف كافة الملفات المخفية والموجود التي في هذا المسار"H:\"

ويقوم بفك الضغط "DLL" واسترجاع الملفات كما كانت من قبل
الرد }}}}
تم الشكر بواسطة:
#2
لا يصلح تحويل مجموعة من الملفات المختلفة و التي لها صفات مختلفة الي ملف Dll لأن ملفات Dll ملفات لها صفة خاصة مثلها مثل اي ملف أخر

لكن الصحيح هو أن تقرأ كل ملف علي حده و تقوم بتحويله الي مصفوفة من البايت و أيضا يجب أن تحدد نوع الملف من امتداد الملف مثلا
ثم تتم عملية الحفظ للملفات علي هيئة مصفوفة
لكنك يجب ان تحدد FileHeader الخاصة بكل ملف تحفظه و هذا ممكن كتابته علي هيئة كلاس أو Structure و تكون مكوناته عبارة عن اسم الملف و امتداده أو نوعيته لأن هذه المعلومات سوف تساعدك لاحقا علي إعادة كل ملف الي صيغته الأصلية
الرد }}}}
تم الشكر بواسطة:
#3
اوكي اخي لا نحولها اريد ضغطها في ملف rar بنفس الطريقة التي قلتها فوق
الرد }}}}
تم الشكر بواسطة:
#4
اين انت ياخبراء
الرد }}}}
تم الشكر بواسطة:
#5
اتوقع ان عبد الرحمن يريد نوع من الخداع في لاحقة الملف بينما يبقى النسق الخاص بالملف هو rar او zip
الفكرة حلوة و لكن يبقى السؤال ما هو اصدار FrameWork الذي تعمل عليه
ساحاول بها و لكن على الاصدارة 4.5
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}}
تم الشكر بواسطة:
#6
اعمل فورم لديك و اضف له كما في الصورة المرفقة



الان تابع معي عبر الاكواد
استورد المراجع التالية
PHP كود :
Imports System.IO
Imports System
.IO.Compression 

و كذلك استورد المرجع  System.IO.Compression.FileSystem الى قائمة المراجع في Solution Explorer و ليس في محرر الكود

عرف المتغير التالي في اعلى الفورم
PHP كود :
   Dim FolderName As String 

سنعمل على وظيفة مشتركة يتسخدمها اكثر من زر و هي تعود بمسار المجلد المحدد
PHP كود :
   Private Function GetOpenFolder(sender As Object) As String

        Dim Ofd 
As New FolderBrowserDialog

        With Ofd
            
.SelectedPath Environment.SpecialFolder.Recent
            
.Description "Select the source directory"
 
           If .ShowDialog DialogResult.OK Then
                Dim btn 
As Button DirectCast(senderButton)
 
               If btn.Name "FolderPath" Then
                    FolderName 
System.IO.Path.GetFileName(Ofd.SelectedPath)
 
               End If
 
               Return .SelectedPath
            End 
If
 
       End With
        Return 
""
 
   End Function 


الان الى اكود الازرار 
PHP كود :
   Private Sub FolderPath_Click(sender As ObjectAs EventArgsHandles FolderPath.Click
        TextBox1
.Text GetOpenFolder(FolderPath)
 
   End Sub 

PHP كود :
   Private Sub BtnSave_Click(sender As ObjectAs EventArgsHandles BtnSave.Click
        If FolderName 
<> "" Then
            TextBox2
.Text GetOpenFolder(BtnSave) & "\" & FolderName & ".dll"

        End If
    End Sub 

الاجراء اسفل الكود
PHP كود :
   Private Sub BtnCompress_Click(sender As ObjectAs EventArgsHandles BtnCompress.Click
        CompressionFolder
()
 
   End Sub 

PHP كود :
   Private Sub CompressionFolder()
 
       Try
            Dim startPath 
As String TextBox1.Text
            Dim zipPath 
As String TextBox2.Text
            ZipFile
.CreateFromDirectory(startPathzipPath)
 
       Catch ex As Exception
            MessageBox
.Show(ex.Message)
 
       End Try

 
   End Sub 


PHP كود :
   Private Sub Btn_selcompress_Click(sender As ObjectAs EventArgsHandles Btn_selcompress.Click
        SelectZipFile
()
 
   End Sub 

PHP كود :
   Private Sub SelectZipFile()

 
       Dim openFileDialog1 As OpenFileDialog = New OpenFileDialog
        openFileDialog1
.Filter "Dll Files (*.dll)|*.dll"
 
       openFileDialog1.FilterIndex 1
        openFileDialog1
.RestoreDirectory True
        Dim UserClickedOK 
As Boolean openFileDialog1.ShowDialog
        If 
(UserClickedOK TrueThen
            FolderName 
System.IO.Path.GetFileName(openFileDialog1.FileName)
 
           FolderName FolderName.Substring(0FolderName.Length 4)
 
           TextBox3.Text openFileDialog1.FileName
        End 
If

 
   End Sub 


PHP كود :
   Private Sub Btn_ExFold_Click(sender As ObjectAs EventArgsHandles Btn_ExFold.Click
        TextBox4
.Text GetOpenFolder(Btn_ExFold) & "\" & FolderName
    End Sub 


PHP كود :
   Private Sub Btn_Exctract_Click(sender As ObjectAs EventArgsHandles Btn_Exctract.Click
        
'معالجة عملية الحذف
        If CheckBox1.CheckState = CheckState.Checked Then
            DeleteFilesFromFolder(TextBox4.Text)
        End If
        ExTractZipFile()

    End Sub 


PHP كود :
   Sub DeleteFilesFromFolder(Folder As String)
 
       If Directory.Exists(FolderThen
            For Each _file 
As String In Directory.GetFiles(Folder)
 
               System.IO.File.Delete(_file)
 
           Next
            For Each _folder 
As String In Directory.GetDirectories(Folder)
 
               DeleteFilesFromFolder(_folder)
 
           Next

        End 
If

 
   End Sub 

الطريقة تعمل وفق ما طلبت تقوم بضغط مجلد بكل ما يحتويه الى المكان المحدد و اعطائه اللاحقة Dll , و اعادة الفك في المسار المحدد مع امكانية الحذف
بالتوفيق اخي
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}}
تم الشكر بواسطة: أسامة السالمي , أبو عمر
#7
ممكن تطبقها في مشروع بي نت فريم وارك 3.5

هناك مشكلة هنا بالتحديد ZipFile.CreateFromDirectory(startPath, zipPath)
ZipFile
الرد }}}}
تم الشكر بواسطة:
#8
المرجع متوفر ابتداءاً من الاصدار 4.5 فقط
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}}
تم الشكر بواسطة:
#9
https://msdn.microsoft.com/en-us/library...ckage.aspx

3.0 ++
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 رَبِّ اغْفِرْ لِي وَلِوَالِدَيَّ
Heart
الرد }}}}
تم الشكر بواسطة:
#10
ياخواني ما اريده التالي ارجوكم انتبوه جيدا انا عندي برنامج فيه 2 زرار عند الضغط علي زر الحفظ فيه يقوم بعمل ضغط لجميع الملفات التي في المسار الموجود في تيكست بوكس 1 ويفتح نافذه SaveFileDingol ليختار المستخدم مكان الحفظ

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طلب فكرة عن التمثيل البياني rabeh.ram 2 38 أمس, 01:33 AM
آخر رد: rabeh.ram
  نقل واسترجاع ملفات بواسطة الفيجوال بيسك عبدالرحمن المكاوي 22 457 03-12-16, 10:47 PM
آخر رد: عبدالرحمن المكاوي
  [سؤال] تشغيل ملفات الصوتية متتالية سوري حر 4 105 02-12-16, 07:18 AM
آخر رد: zinom
  [VB.NET] عدة ملفات نصية rabeh.ram 2 57 13-11-16, 08:13 AM
آخر رد: rabeh.ram
  مساعدة في طريقه فكرة عمل جدول sql server Rabeea Qbaha 4 107 08-11-16, 04:55 PM
آخر رد: Rabeea Qbaha
  [سؤال] طلب لمثال عن انشاء حماية للبرنامج في vb.net 2012 مع فكرة بحاجة للتطبيق M@GED 12 311 05-11-16, 10:49 AM
آخر رد: أبو عمر
  [سؤال] مساعدة في تشفير ملفات حسان محمد عابد 1 51 24-10-16, 10:28 PM
آخر رد: حسان محمد عابد
  [VB.NET] هل يوجد كود لقراءة ملفات bin ?? 0theghost0 1 70 05-10-16, 08:51 PM
آخر رد: محمد كريّم
  [سؤال] سؤال يخص ملفات exe ramez live vb 12 359 09-09-16, 08:58 PM
آخر رد: أبو عمر
  فكرة برنامج mudz 1 127 04-09-16, 12:36 PM
آخر رد: Kian Tech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم