當前位置:首頁 » 文件管理 » vb要壓縮嗎

vb要壓縮嗎

發布時間: 2022-10-11 06:25:37

❶ vb怎麼壓縮解壓文件

推薦採用免費的DOS版RAR程序,然後用SHELL "命令行" 的方式壓縮解壓文件,我就這么乾的,做起來方便很多。

❷ vb.net進行文件壓縮

如果機器安裝有winRar軟體,就可以通過shell來借用他的功能達到壓縮文件的效果;
參考代碼如下:

Dim DeliveryF As String = Server.MapPath("..\Temp\DeliveryFactors.xls") '原始文件 (壓縮前)
Dim TruckInfo As String = Server.MapPath("..\Temp\TruckInformation.xls")
Dim QDetail As String = Server.MapPath("..\Temp\QuotationDetail.xls")

'用shell命令調用winrar.exe創建壓縮文件()
Dim winRarexe As String = "C:\Program Files\WinRAR\Rar" 'winzip 執行文件的位置
Dim wtarget As String = "C:\temp\QuotationVAComparsion.zip" '目地文件 (壓縮後)
Dim command As String = winRarexe & " a " & wtarget & " " & DeliveryF & " " & TruckInfo & " " & QDetail

'這個命令你可以查看winrar的命令集

Dim retval As Double 'Shell 指令傳回值
retval = Shell(command, AppWinStyle.MinimizedFocus)

❸ 請問怎麼vb壓縮圖片,內詳

'圖片壓縮處理程序,可以實現高壓縮!
'注JPG壓縮比值為1-255
Public Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Public Type GdiplusStartupInput
GdiplusVersion As Long
DebugEventCallback As Long
SuppressBackgroundThread As Long
SuppressExternalCodecs As Long
End Type
Public Type EncoderParameter
GUID As GUID
NumberOfValues As Long
type As Long
Value As Long
End Type
Public Type EncoderParameters
count As Long
Parameter As EncoderParameter
End Type

Public Declare Function GdiplusStartup Lib "GDIPlus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As Long
Public Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long
Public Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hPal As Long, BITMAP As Long) As Long
Public Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long
Public Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal FileName As Long, clsidEncoder As GUID, encoderParams As Any) As Long
Public Declare Function CLSIDFromString Lib "ole32" (ByVal Str As Long, id As GUID) As Long
Public Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb As Long) As Long

'*************************************************************************
'** 作 者 : laviewpbt
'** 函 數 名 : SavePic
'** 輸 入 : pic(StdPicture) - 圖象句柄
'** : FileName(String) - 保存路徑
'** : Quality(Byte) - JPG圖象質量
'** : TIFF_ColorDepth(Long) - TTF格式的顏色深度
'** : TIFF_Compression(Long) - TTF格式的壓縮比
'** 輸 出 : 無
'** 功能描述 : 把圖象保存為JPG、TIFF、PNG、GIF、BMP格式
'** 日 期 :
'** 修 改 人 : laviewpbt
'** 日 期 : 2005-10-23 14.43.52
'** 版 本 : Version 1.2.1
'*************************************************************************
Public Sub SavePic(ByVal pict As StdPicture, ByVal FileName As String, PicType As String, _
Optional ByVal Quality As Byte = 80, _
Optional ByVal TIFF_ColorDepth As Long = 24, _
Optional ByVal TIFF_Compression As Long = 6)
Screen.MousePointer = vbHourglass
Dim tSI As GdiplusStartupInput
Dim lRes As Long
Dim lGDIP As Long
Dim lBitmap As Long
Dim aEncParams() As Byte
On Error GoTo ErrHandle:
tSI.GdiplusVersion = 1 ' 初始化 GDI+
lRes = GdiplusStartup(lGDIP, tSI)
If lRes = 0 Then ' 從句柄創建 GDI+ 圖像
lRes = GdipCreateBitmapFromHBITMAP(pict.Handle, 0, lBitmap)
If lRes = 0 Then
Dim tJpgEncoder As GUID
Dim tParams As EncoderParameters '初始化解碼器的GUID標識
Select Case PicType
Case ".jpg"
CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
tParams.count = 1 ' 設置解碼器參數
With tParams.Parameter ' Quality
CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .GUID ' 得到Quality參數的GUID標識
.NumberOfValues = 1
.type = 4
.Value = VarPtr(Quality)
End With
ReDim aEncParams(1 To Len(tParams))
Call CopyMemory(aEncParams(1), tParams, Len(tParams))
Case ".png"
CLSIDFromString StrPtr("{557CF406-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
ReDim aEncParams(1 To Len(tParams))
Case ".gif"
CLSIDFromString StrPtr("{557CF402-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
ReDim aEncParams(1 To Len(tParams))
Case ".tiff"
CLSIDFromString StrPtr("{557CF405-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
tParams.count = 2
ReDim aEncParams(1 To Len(tParams) + Len(tParams.Parameter))
With tParams.Parameter
.NumberOfValues = 1
.type = 4
CLSIDFromString StrPtr("{E09D739D-CCD4-44EE-8EBA-3FBF8BE4FC58}"), .GUID ' 得到ColorDepth參數的GUID標識
.Value = VarPtr(TIFF_Compression)
End With
Call CopyMemory(aEncParams(1), tParams, Len(tParams))
With tParams.Parameter
.NumberOfValues = 1
.type = 4
CLSIDFromString StrPtr("{66087055-AD66-4C7C-9A18-38A2310B8337}"), .GUID ' 得到Compression參數的GUID標識
.Value = VarPtr(TIFF_ColorDepth)
End With
Call CopyMemory(aEncParams(Len(tParams) + 1), tParams.Parameter, Len(tParams.Parameter))
Case ".bmp" '可以提前寫保存為BMP的代碼,因為並沒有用GDI+
SavePicture pict, FileName
Screen.MousePointer = vbDefault
Exit Sub
End Select
lRes = GdipSaveImageToFile(lBitmap, StrPtr(FileName), tJpgEncoder, aEncParams(1)) '保存圖像
GdipDisposeImage lBitmap ' 銷毀GDI+圖像
End If
GdiplusShutdown lGDIP '銷毀 GDI+
End If
Screen.MousePointer = vbDefault
Erase aEncParams
Exit Sub
ErrHandle:
Screen.MousePointer = vbDefault
MsgBox "在保存圖片的過程中發生錯誤:" & vbCrLf & vbCrLf & "錯誤號: " & Err.Number & vbCrLf & "錯誤描述: " & Err.Description, vbInformation Or vbOKOnly, "錯誤"
End Sub

把以上的代碼復制到模塊

❹ VB中 如何用winrar 壓縮一個文件夾

如果是本地文件,可以這樣:一些資料庫文件(如Access文件)在遠程傳輸過程中可能由於文件比較大而影響傳遞效果。如果進行壓縮以後再傳遞,會減少傳遞時間,避免意外的發生,同時也保證了傳遞效果。我們在壓縮文件時,最常用的壓縮工具為WinRar和Winzip,筆者在VB編程過程中利用WinRar工具來壓縮資料庫文件,並完成遠程傳輸,十分方便,在此向大家介紹一下。用WinZip的方法類似。

一、Shell函數

Shell函數是VB中的內部函數,它負責執行一個可執行文件,返回一個Variant(Double),如果成功的話,代表這個程序的進程ID,若不成功,則會返回0。

Shell的語法:Shell(PathName[,WindowStyle])。

PathName 為必需參數。類型為String,它指出了要執行的程序名,以及任何需要的參數或命令行變數,也可以包括路徑名。

WindowStyle為可選參數。Integer類型,指定在程序運行時窗口的樣式。WindowStyle有以下這些值。

常量值描述

VbHide 0 窗口被隱藏,且焦點會移到隱式窗口。

VbNormalFocus 1 窗口具有焦點,且會還原到它原來的大小和位置。

VbMinimizedFocus 2 窗口會以一個具有焦點的圖標來顯示(預設值)。

VbMaximizedFocus 3 窗口是一個具有焦點的最大化窗口。

VbNormalNoFocus 4 窗口會被還原到最近使用的大小和位置,而當前活動的窗口仍然保持活動。

VbMinimizedNoFocus 6 窗口會以一個圖標來顯示,而當前活動的窗口仍然保持活動。

二、關於WinRar的用法

主要介紹以下如何在WinRar中用命令行來壓縮和解壓縮文件。

壓縮:WINRAR A [-switches] [Files] [@File lists]

例如你想把try.mdb壓縮到C盤下,可以WINRAR A C:\try.rar C:\try.mdb

解壓縮:如果帶目錄解壓縮

WINRAR X [-switches] [Files] [@File lists] [destionation folder\]

如果在當前目錄解壓縮,即解壓縮時不寫目錄名

WINRAR E [-switches] [Files] [@File lists] [destionation folder\]

例如你想把try.rar解壓縮到C盤下,可以WINRAR X C:\try.rar C:\try.mdb

三、一個例子

在VB中新建一個工程,在Form1中添加兩個按鈕Command1、Command2和Command3,把他們的Caption屬性分別設為"壓縮文件"、"解壓縮文件"和"傳遞文件"。按Command1時把文件try.mdb壓縮成try.rar。

Private Sub Command1_Click()

Dim Rarexe As String 'WINRAR執行文件的位置

Dim Source As String ' 壓縮前的原始文件

Dim Target As String ' 壓縮後的目標文件

Dim FileString as String 'Shell指令中的字元串

Dim Result As Long

Rarexe="C:\program files\winrar\winrar"

Source="C:\try.mdb"

Target="C:\try.rar"

FileString = rarexe & " a " & Target & " " & Source

Result = Shell(FileString, vbHide)

End Sub

解壓的過程類似,按Command2可以把try.rar解壓生成 try.mdb。在執行了上面的壓縮過程後,可以刪除文件try.mdb,來解壓縮重新生成try.mdb。

Private Sub Command2_Click()

Dim Rarexe As String 'WINRAR執行文件的位置

Dim Source As String ' 解壓縮前的原始文件

Dim Target As String ' 解壓縮後的目標文件

Dim FileString as String 'Shell指令中的字元串

Dim Result As Long

Rarexe="C:\program files\winrar\winrar"

Source="C:\try.rar"

Target="C:\try.mdb"

FileString = rarexe & " X " & Source & " " & Target

Result = Shell(FileString, vbHide)

End Sub

文件從一台計算機傳輸到另一台計算機前,應知道另一台計算機的名字,然後用FileCopy語句就可以了。假設要把壓縮後try.rar傳遞到計算機名為"other"的共享目錄"want"下。

Private Sub Command3_Click()

Dim SourceFile, DestinationFile

SourceFile ="C:\try.rar " ' 指定源文件名。

DestinationFile = "\\other\want\try.rar" ' 指定目的文件名。

FileCopy SourceFile, DestinationFile ' 將源文件的內容復制到目的文件中。

End Sub

怎麼樣,十分簡單吧?

❺ vb 怎麼壓縮,解壓文件,就是rar或者zip,給我源碼,還有調用哪個dll

其實無需調用DLL,現在只要系統中安裝了WinRAR,其安裝目錄自帶了壓縮和解壓軟體:Rar.exe、UnRAR.exe,使用VB的shell調用這兩個軟體即可,WinRAR支持的格式非常多,不用自己再去造輪子了,下面是簡單的示例代碼:
註:如果不想安裝WinRAR,那就到已安裝WinRAR的電腦中將拷貝到你的某個路徑中再調用吧

'將C盤根目錄中的mydoc.docx文件,壓縮成根目錄下的mydoc.rar文件
'使用rar.exe,調用格式:rar.exe a <目標壓縮包文件> <源文件>
Private Sub Command1_Click()
Call Shell("C:\Program Files\WinRAR\rar.exe a c:\mydoc.rar c:\mydoc.docx", vbHide)
End Sub

'將C盤根目錄下的mydoc.rar壓縮包中的文件,解壓到D盤一個目錄中
'使用unrar.exe,調用格式:unrar.exe x <源壓縮包文件> <目標路徑>
Private Sub Command2_Click()
Call Shell("C:\Program Files\WinRAR\unrar.exe x c:\mydoc.rar d:\temp", vbHide)
End Sub

❻ VB 壓縮或解壓文件

在VB中用shell調用winrar目錄中的rar.exe(壓縮)或unrar.exe(解壓縮)即可。具體參數看winrar的說明。
可以把rar.exe、unrar.exe這兩個文件復制到自己程序所在目錄,以方便使用。
例如解壓縮123.rar文件:
shell "unrar.exe x -inul 123.rar",vbhide

❼ vb怎麼壓縮/解壓數據

winrar有預定義的指令的,比如下面的vb代碼把文件壓縮: mystr = "C:\Program Files\WinRAR\WinRAR.exe"
Source = "d:\1.txt" '源文件的位置
Target = "d:\" '存放壓縮文件的位置
mystr = mystr & " a " & Target & " " & Source
'調用RAR文件壓縮
retval = Shell(mystr, vbHide)
MsgBox "文件壓縮成功完成!", 64, "提示信息"解壓文件也類似,可以去找下winrar的一些說明,它自己有命令行的,調用就行,解壓好像是-inul,不太記得了。上面的代碼可以進行壓縮。

❽ vb文件壓縮

你可以看看WinRar的幫助,命令行模式下可以不壓縮路徑,用-ep開關
mystr = mystr & " a -ep " & Target & " " & Source '命令字元串

❾ 如何用VB編寫壓縮與解壓縮的程序

自己編寫一個好的壓縮與解壓縮程序,演算法是相當復雜的,如果只是想把多個文件打個包並不難,把多個文件寫入一個二進制文件即可,當然這裡面也要有文件名如何保存,每個文件到哪結束等的問題。
最簡單的方法是調用第三方軟比如zip等,建議調用ARJ.EXE或LHARC.EXE因為它們只一個文件並且體積都很小壓縮比也不錯。

❿ 用VB怎樣壓縮一個文件

Option Explicit
Dim mystr As String
Dim Source As String ' 源文件
Dim Target As String ' 目標文件
Dim retval
Private Sub Command1_Click() ,=========壓縮文件
mystr = "C:\Program Files\WinRAR\winrar.exe" 'winrar.exe文件路徑
Source = App.Path & "\111.jpg"
Target = App.Path & "\111.rar" '壓縮格式可以是rar,也可以是cab....
mystr = mystr & " a " & Target & " " & Source '命令字元串
retval = Shell(mystr, vbHide)
End Sub
Private Sub Command2_Click() 『===========解壓文件
mystr = "C:\Program Files\WinRAR\winrar.exe"
Source = App.Path & "\111.rar"
Target = App.Path & "\new" '存放壓縮文件的位置
mystr = mystr & "X" & Source & " " & Target
Text1.Text = mystr
retval = Shell(mystr, vbHide)
End Sub
Private Sub Command3_Click()
End
End Sub

熱點內容
神武手游什麼隊伍配置最好 發布:2024-10-08 04:19:05 瀏覽:420
seer資料庫 發布:2024-10-08 04:18:47 瀏覽:477
l3緩存分數下降 發布:2024-10-08 04:10:36 瀏覽:433
linux游戲伺服器 發布:2024-10-08 04:04:17 瀏覽:74
有什麼推薦的網游低配置 發布:2024-10-08 03:17:03 瀏覽:36
淘優惠源碼 發布:2024-10-08 03:17:02 瀏覽:780
linux系統製作 發布:2024-10-08 02:47:15 瀏覽:252
4s緩存怎麼清理 發布:2024-10-08 02:46:42 瀏覽:429
蘋果11面容存儲微信密碼 發布:2024-10-08 02:35:58 瀏覽:764
魔獸243腳本 發布:2024-10-08 02:35:12 瀏覽:640