vbs mdb打包解包代码打包
来源: 阅读:1007 次 日期:2016-07-07 14:51:20
温馨提示: 小编为您整理了“vbs mdb打包解包代码打包”,方便广大网友查阅!

pack.vbs 用来打包文件夹, 根目录为文件所在目录.

代码如下:

Dim n, ws, fsoX, thePath

Set ws = CreateObject("WScript.Shell")

Set fsoX = CreateObject("Scripting.FileSystemObject")

thePath = ws.Exec("cmd /c cd").StdOut.ReadAll() & "\"

i = InStr(thePath, Chr(13))

thePath = Left(thePath, i - 1)

n = len(thePath)

On Error Resume Next

addToMdb(thePath)

Wscript.Echo "当前目录已经打包完毕,根目录为当前目录"

Sub addToMdb(thePath)

Dim rs, conn, stream, connStr

Set rs = CreateObject("ADODB.RecordSet")

Set stream = CreateObject("ADODB.Stream")

Set conn = CreateObject("ADODB.Connection")

Set adoCatalog = CreateObject("ADOX.Catalog")

connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Packet.mdb"

adoCatalog.Create connStr

conn.Open connStr

conn.Execute("Create Table FileData(Id int IDENTITY(0,1) PRIMARY KEY CLUSTERED, thePath VarChar, fileContent Image)")

stream.Open

stream.Type = 1

rs.Open "FileData", conn, 3, 3

fsoTreeForMdb thePath, rs, stream

rs.Close

Conn.Close

stream.Close

Set rs = Nothing

Set conn = Nothing

Set stream = Nothing

Set adoCatalog = Nothing

End Sub

Function fsoTreeForMdb(thePath, rs, stream)

Dim i, item, theFolder, folders, files

sysFileList = "$" & WScript.ScriptName & "$Packet.mdb$Packet.ldb$"

Set theFolder = fsoX.GetFolder(thePath)

Set files = theFolder.Files

Set folders = theFolder.SubFolders

For Each item In folders

fsoTreeForMdb item.Path, rs, stream

Next

For Each item In files

If InStr(LCase(sysFileList), "$" & LCase(item.Name) & "$") <= 0 Then

rs.AddNew

rs("thePath") = Mid(item.Path, n + 2)

stream.LoadFromFile(item.Path)

rs("fileContent") = stream.Read()

rs.Update

End If

Next

Set files = Nothing

Set folders = Nothing

Set theFolder = Nothing

End Function

unpack.vbs 用来解包文件包(Packet.mdb), 解开到当前目录.

代码如下:

Dim rs, ws, fso, conn, stream, connStr, theFolder

Set rs = CreateObject("ADODB.RecordSet")

Set stream = CreateObject("ADODB.Stream")

Set conn = CreateObject("ADODB.Connection")

Set fso = CreateObject("Scripting.FileSystemObject")

connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Packet.mdb;"

conn.Open connStr

rs.Open "FileData", conn, 1, 1

stream.Open

stream.Type = 1

On Error Resume Next

Do Until rs.Eof

theFolder = Left(rs("thePath"), InStrRev(rs("thePath"), "\"))

If fso.FolderExists(theFolder) = False Then

createFolder(theFolder)

End If

stream.SetEos()

stream.Write rs("fileContent")

stream.SaveToFile str & rs("thePath"), 2

rs.MoveNext

Loop

rs.Close

conn.Close

stream.Close

Set ws = Nothing

Set rs = Nothing

Set stream = Nothing

Set conn = Nothing

Wscript.Echo "所有文件释放完毕!"

Sub createFolder(thePath)

Dim i

i = Instr(thePath, "\")

Do While i > 0

If fso.FolderExists(Left(thePath, i)) = False Then

fso.CreateFolder(Left(thePath, i - 1))

End If

If InStr(Mid(thePath, i + 1), "\") Then

i = i + Instr(Mid(thePath, i + 1), "\")

Else

i = 0

End If

Loop

End Sub

更多信息请查看脚本栏目
手机网站地址:vbs mdb打包解包代码打包
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map