Bir dosyayı sıkıştırmak için SevenZipsharp kullanmak istiyorum, örneğin 100 mb'lik bir dosyayı 10 mb'lik 10 dosyaya sıkıştırmak için. Biz 7zip.exe -Ses parametreyi yani ... MeselaÇoklu birimlerde sıkıştırmak için SevenZipSharp kullanma?
, ben 7Zip kullanarak çok hacimlerde sıkıştırmak zaman dosyaların bu yapıyı almak kullanarak aynı yapabilirsiniz:
File.7z.001
File.7z.002
File.7z.003
etc...
dosyalar independient değildir , Aynı boyutta 7zip dosyaları bir miktar değil, çeşitli birimlerde bir sıkıştırılmış dosya, ben ilk dosyaya ihtiyacımız var tüm içeriği ayıklamak demek "File.7z.001"
Aynı yapmak istiyorum SevenZipSharp kullanarak bir şey (eğer mümkünse).
Imports SevenZip
Dim dll As String = "7z.dll"
Private Function SevenZipSharp_Compress(ByVal Input_DirOrFile As String, _
Optional ByVal OutputFileName As String = Nothing, _
Optional ByVal Format As OutArchiveFormat = OutArchiveFormat.SevenZip, _
Optional ByVal CompressionMode As CompressionMode = CompressionMode.Create, _
Optional ByVal CompressionMethod As CompressionMethod = CompressionMethod.Lzma, _
Optional ByVal CompressionLevel As CompressionLevel = CompressionLevel.Normal, _
Optional ByVal Password As String = Nothing) As Boolean
Try
' Set library path
SevenZipExtractor.SetLibraryPath(dll)
' Create compressor and specify the file or folder to compress
Dim Compressor As SevenZipCompressor = New SevenZipCompressor()
' Set compression parameters
Compressor.CompressionLevel = CompressionLevel ' Archiving compression level.
Compressor.CompressionMethod = CompressionMethod ' Append files to compressed file or overwrite the compressed file.
Compressor.ArchiveFormat = Format ' Compression file format
Compressor.CompressionMode = CompressionMode ' Compression mode
Compressor.DirectoryStructure = True ' Preserve the directory structure.
Compressor.IncludeEmptyDirectories = True ' Include empty directories to archives.
Compressor.ScanOnlyWritable = False ' Compress files only open for writing.
Compressor.EncryptHeaders = False ' Encrypt 7-Zip archive headers
Compressor.TempFolderPath = System.IO.Path.GetTempPath() ' Temporary folder path
Compressor.FastCompression = False ' Compress as fast as possible, without calling events.
Compressor.PreserveDirectoryRoot = True ' Preserve the directory root for CompressDirectory.
Compressor.ZipEncryptionMethod = ZipEncryptionMethod.ZipCrypto ' Encryption method for zip archives.
Compressor.DefaultItemName = "File.7z" ' Item name used when an item to be compressed has no name, for example, when you compress a MemoryStream instance
' Get File extension
Dim CompressedFileExtension As String = Nothing
Select Case Compressor.ArchiveFormat
Case OutArchiveFormat.SevenZip : CompressedFileExtension = ".7z"
Case OutArchiveFormat.BZip2 : CompressedFileExtension = ".bz"
Case OutArchiveFormat.GZip : CompressedFileExtension = ".gzip"
Case OutArchiveFormat.Tar : CompressedFileExtension = ".tar"
Case OutArchiveFormat.XZ : CompressedFileExtension = ".xz"
Case OutArchiveFormat.Zip : CompressedFileExtension = ".zip"
End Select
' Add Progress Handler
'AddHandler Compressor.Compressing, AddressOf SevenZipSharp_Compress_Progress
' Removes the end slash ("\") if given for a directory
If Input_DirOrFile.EndsWith("\") Then Input_DirOrFile = Input_DirOrFile.Substring(0, Input_DirOrFile.Length - 1)
' Generate the OutputFileName if any is given.
If OutputFileName Is Nothing Then _
OutputFileName = (My.Computer.FileSystem.GetFileInfo(Input_DirOrFile).DirectoryName & "\" & (Input_DirOrFile.Split("\").Last) & CompressedFileExtension).Replace("\\", "\")
' Check if given argument is Dir or File ...then start the compression
If IO.Directory.Exists(Input_DirOrFile) Then ' Is a Dir
If Not Password Is Nothing Then
Compressor.CompressDirectory(Input_DirOrFile, OutputFileName, True, Password)
Else
Compressor.CompressDirectory(Input_DirOrFile, OutputFileName, True)
End If
ElseIf IO.File.Exists(Input_DirOrFile) Then ' Is a File
If Not Password Is Nothing Then
Compressor.CompressFilesEncrypted(OutputFileName, Password, Input_DirOrFile)
Else
Compressor.CompressFiles(OutputFileName, Input_DirOrFile)
End If
End If
Catch ex As Exception
'Return False ' File not compressed
Throw New Exception(ex.Message)
End Try
Return True ' File compressed
End Function
Kullanımı: (cevap C# kodu ise ancak olursa olsun)
Sanırım yardıma ihtiyacım, ben çok hacimli seçeneği uygulamak için gereken vb.net bu pasajı yaptık snippet'in: En Compressor
nesne üzerinde
SevenZipSharp_Compress("C:\File or folder", _
"Optional: Output dir", _
OutArchiveFormat.SevenZip, _
CompressionMode.Create, _
CompressionMethod.Lzma, _
CompressionLevel.Ultra, _
"Optional: Password")
, en azından artık 7zip ile çalışır format, teşekkür! – ElektroStudios