PDA

View Full Version : سوال: فراخوانی نرم افزار وین رر برای فشرده سازی



saeidmobashery
شنبه 28 بهمن 1402, 20:30 عصر
سلام بر دوستان گرانقدرم
و عرض ارادت بر اساتید عزیز

بنده پوشه‌ای حاوی یک سری فایل تکست دارم و سابروتینی که با هر بار اجرا فایل‌های تکست را ویرایش می‌کند می‌خواهم قبل از اجرای سابروتین ، از پوشه یک بکاپ به صورت فایل فشرده شده توسط برنامه وین رر بگیرم ؛ ممنون می‌شوم راهنمایی بفرمایید

البته اگر راهکاری هست برای بکاپ گرفتن بدون نیاز به برنامه ثانویه‌ای مثل وین رر ممنون می‌شوم مطرح فرمایید ؛ سپاس

پرستو پارسایی
یک شنبه 29 بهمن 1402, 17:05 عصر
اول مطمئن شید که کتابخانه System.IO.Compression به پروژه خود اضافه شده باشه تا بتونید ازاون برای فشرده‌سازی و از حالت فشرده خارج کردن فایل‌ها استفاده کنید.
آدرس پوشه مبدا و پوشه بکاپ را مشخص کنید. سپس با استفاده از ZipFile.CreateFromDirectory، یک فایل فشرده حاوی فایل‌های پوشه مبدا ایجاد می‌شه. اگر نیاز به استخراج فایل‌ها از فایل فشرده داشتید، می‌توانید از ZipFile.ExtractToDirectory استفاده کنید.

Imports System.IO
Imports System.IO.Compression


Dim backupFolder As String = "Path\To\Backup\Folder"
Dim sourceFolder As String = "Path\To\Source\Folder"
Dim zipFilePath As String = Path.Combine(backupFolder, "backup.zip")


' ایجاد فایل فشرده
ZipFile.CreateFromDirectory(sourceFolder, zipFilePath)


' برای استخراج فایل‌ها از فایل فشرده:
' ZipFile.ExtractToDirectory(zipFilePath, destinationFolder)

saeidmobashery
دوشنبه 30 بهمن 1402, 08:51 صبح
اول مطمئن شید که کتابخانه System.IO.Compression به پروژه خود اضافه شده باشه تا بتونید ازاون برای فشرده‌سازی و از حالت فشرده خارج کردن فایل‌ها استفاده کنید.
آدرس پوشه مبدا و پوشه بکاپ را مشخص کنید. سپس با استفاده از ZipFile.CreateFromDirectory، یک فایل فشرده حاوی فایل‌های پوشه مبدا ایجاد می‌شه. اگر نیاز به استخراج فایل‌ها از فایل فشرده داشتید، می‌توانید از ZipFile.ExtractToDirectory استفاده کنید.

Imports System.IO
Imports System.IO.Compression


Dim backupFolder As String = "Path\To\Backup\Folder"
Dim sourceFolder As String = "Path\To\Source\Folder"
Dim zipFilePath As String = Path.Combine(backupFolder, "backup.zip")


' ایجاد فایل فشرده
ZipFile.CreateFromDirectory(sourceFolder, zipFilePath)


' برای استخراج فایل‌ها از فایل فشرده:
' ZipFile.ExtractToDirectory(zipFilePath, destinationFolder)



سپاس استاد عزیزم

saeidmobashery
سه شنبه 01 اسفند 1402, 16:38 عصر
اول مطمئن شید که کتابخانه System.IO.Compression به پروژه خود اضافه شده باشه تا بتونید ازاون برای فشرده‌سازی و از حالت فشرده خارج کردن فایل‌ها استفاده کنید.
آدرس پوشه مبدا و پوشه بکاپ را مشخص کنید. سپس با استفاده از ZipFile.CreateFromDirectory، یک فایل فشرده حاوی فایل‌های پوشه مبدا ایجاد می‌شه. اگر نیاز به استخراج فایل‌ها از فایل فشرده داشتید، می‌توانید از ZipFile.ExtractToDirectory استفاده کنید.

Imports System.IO
Imports System.IO.Compression


Dim backupFolder As String = "Path\To\Backup\Folder"
Dim sourceFolder As String = "Path\To\Source\Folder"
Dim zipFilePath As String = Path.Combine(backupFolder, "backup.zip")


' ایجاد فایل فشرده
ZipFile.CreateFromDirectory(sourceFolder, zipFilePath)


' برای استخراج فایل‌ها از فایل فشرده:
' ZipFile.ExtractToDirectory(zipFilePath, destinationFolder)


استاد عزیز به چه صورت می‌توانم به فایل زیپ پسورد بدهم و به همین شکل موقع باز کردن ؟

پرستو پارسایی
سه شنبه 01 اسفند 1402, 17:29 عصر
Imports System.IO
Imports System.IO.Compression


Module Module1
Sub Main()
Dim sourceFolder As String = "Path\To\Source\Folder"
Dim zipFilePath As String = "Path\To\Backup\Folder\backup.zip"
Dim password As String = "YourPassword"


' ایجاد فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Create)
For Each file As String In Directory.GetFiles(sourceFolder)
Dim entry As ZipArchiveEntry = archive.CreateEntry(Path.GetFileName(file))
Using entryStream As Stream = entry.Open()
Using fileStream As FileStream = File.OpenRead(file)
fileStream.CopyTo(entryStream)
End Using
End Using
Next
' اعمال پسورد به فایل ZIP
archive.Encryption = EncryptionAlgorithm.PkzipWeak
archive.Password = password
End Using


' برای استخراج فایل‌ها از فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Read)
For Each entry As ZipArchiveEntry In archive.Entries
Dim destinationPath As String = Path.Combine(sourceFolder, entry.FullName)
entry.ExtractToFile(destinationPath, True)
Next
End Using
End Sub
End Module

پسورد مورد نظر خود را در متغیر password قرار بدید و پس از ایجاد فایل ZIP، پسورد به آن اعمال میشه. و با استفاده از متد ExtractToFile می‌تونید فایل‌ها را از فایل ZIP با پسورد استخراج کنید.

saeidmobashery
سه شنبه 01 اسفند 1402, 20:38 عصر
Imports System.IO
Imports System.IO.Compression


Module Module1
Sub Main()
Dim sourceFolder As String = "Path\To\Source\Folder"
Dim zipFilePath As String = "Path\To\Backup\Folder\backup.zip"
Dim password As String = "YourPassword"


' ایجاد فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Create)
For Each file As String In Directory.GetFiles(sourceFolder)
Dim entry As ZipArchiveEntry = archive.CreateEntry(Path.GetFileName(file))
Using entryStream As Stream = entry.Open()
Using fileStream As FileStream = File.OpenRead(file)
fileStream.CopyTo(entryStream)
End Using
End Using
Next
' اعمال پسورد به فایل ZIP
archive.Encryption = EncryptionAlgorithm.PkzipWeak
archive.Password = password
End Using


' برای استخراج فایل‌ها از فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Read)
For Each entry As ZipArchiveEntry In archive.Entries
Dim destinationPath As String = Path.Combine(sourceFolder, entry.FullName)
entry.ExtractToFile(destinationPath, True)
Next
End Using
End Sub
End Module

پسورد مورد نظر خود را در متغیر password قرار بدید و پس از ایجاد فایل ZIP، پسورد به آن اعمال میشه. و با استفاده از متد ExtractToFile می‌تونید فایل‌ها را از فایل ZIP با پسورد استخراج کنید.



استاد عزیزم نتیجه اینطوری شد به چند ایراد برخورد کردم :
155410

پرستو پارسایی
چهارشنبه 02 اسفند 1402, 20:02 عصر
این تغییرات را اعمال کنید و تست مجدد بفرمایید

Imports System.IO
Imports System.IO.Compression


Module Module1
Sub Main()
Dim sourceFolder As String = "Path\To\Source\Folder"
Dim zipFilePath As String = "Path\To\Backup\Folder\backup.zip"
Dim password As String = "YourPassword"


' ایجاد فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Create)
For Each file As String In Directory.GetFiles(sourceFolder)
Dim entry As ZipArchiveEntry = archive.CreateEntry(Path.GetFileName(file))
Using entryStream As Stream = entry.Open()
Using fileStream As FileStream = File.OpenRead(file)
fileStream.CopyTo(entryStream)
End Using
End Using
Next

' اعمال پسورد به فایل ZIP
archive.Encryption = ZipArchiveEncryption.PkzipWeak
archive.Password = password
End Using


' برای استخراج فایل‌ها از فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Read)
For Each entry As ZipArchiveEntry In archive.Entries
Dim destinationPath As String = Path.Combine(sourceFolder, entry.FullName)
entry.ExtractToFile(destinationPath, True)
Next
End Using
End Sub
End Module

saeidmobashery
شنبه 05 اسفند 1402, 15:02 عصر
این تغییرات را اعمال کنید و تست مجدد بفرمایید

Imports System.IO
Imports System.IO.Compression


Module Module1
Sub Main()
Dim sourceFolder As String = "Path\To\Source\Folder"
Dim zipFilePath As String = "Path\To\Backup\Folder\backup.zip"
Dim password As String = "YourPassword"


' ایجاد فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Create)
For Each file As String In Directory.GetFiles(sourceFolder)
Dim entry As ZipArchiveEntry = archive.CreateEntry(Path.GetFileName(file))
Using entryStream As Stream = entry.Open()
Using fileStream As FileStream = File.OpenRead(file)
fileStream.CopyTo(entryStream)
End Using
End Using
Next

' اعمال پسورد به فایل ZIP
archive.Encryption = ZipArchiveEncryption.PkzipWeak
archive.Password = password
End Using


' برای استخراج فایل‌ها از فایل فشرده با پسورد
Using archive As ZipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Read)
For Each entry As ZipArchiveEntry In archive.Entries
Dim destinationPath As String = Path.Combine(sourceFolder, entry.FullName)
entry.ExtractToFile(destinationPath, True)
Next
End Using
End Sub
End Module


موفق نشدم استاد عزیز

saeidmobashery
شنبه 05 اسفند 1402, 15:05 عصر
تاپیکی در همین سایت پیدا کردم به آدرس زیر :
آموزش: ZiP و Unzip کردن فایل و فولدر ها به روش خیلی ساده ! (barnamenevis.org) (https://barnamenevis.org/showthread.php?210178-ZiP-%D9%88-Unzip-%DA%A9%D8%B1%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-%D9%88-%D9%81%D9%88%D9%84%D8%AF%D8%B1-%D9%87%D8%A7-%D8%A8%D9%87-%D8%B1%D9%88%D8%B4-%D8%AE%DB%8C%D9%84%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-!)

کتابخانه زیر را دانلود کردم :
https://barnamenevis.org/attachment.php?attachmentid=45578&d=1268520557

سپس به سهولت روی فایل و فولدر پسورد ست می‌کنه از طریق کد زیر :
155428
ولی مشکل بزرگی دارد :

پس از فشرده کردن فایل ها وفتی فایل زیپ سیو شده را باز می‌کنیم مستقیم فایل‌ها را نمی‌بینیم و به ترتیب پوشه‌هایی که در مسیر دایرکتوری بوده‌اند در فایل زیپ قرار گرفته و باید تک تک آن‌ها را باز کنیم که به فایل‌ها برسیم


مشکل دوم هم در استخراج است که محتویات فایل فشرده را در کنار فایل برنامه قرار می‌دهد با کد زیر :
155430