当前位置:首页 » 文件管理 » 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 02:12:54 浏览:288
宝马远程服务器如何启用 发布:2024-10-08 02:02:57 浏览:390
c语言freadfwrite 发布:2024-10-08 02:01:15 浏览:853
脚本还不简单吗 发布:2024-10-08 01:54:43 浏览:422
安卓手机如何像平板一样横屏 发布:2024-10-08 01:33:26 浏览:509
wapi认证服务器ip 发布:2024-10-08 01:33:24 浏览:506
centos自带python 发布:2024-10-08 00:53:31 浏览:340
android串口调试助手 发布:2024-10-08 00:45:03 浏览:405
sqlserver2008乱码 发布:2024-10-08 00:39:59 浏览:220
华为电脑服务器系统进不去提示 发布:2024-10-08 00:13:42 浏览:491