zip 文件格式规定,一个zip 文件必须要包含一个end of central directory record。
一个zip 文件如果只有一个end of central directory record 就相当于一个空的zip 文件。
其中end of central directory record 的结构如下:
基于以上的认识,只需要把这个结构写入一个空白的文件中,然后另存为zip文件即可。
代码如下:
Sub QQ1722187970() Dim arr(21) As Byte arr(0) = &H50 arr(1) = &H4B arr(2) = &H5 arr(3) = &H6 For i = 5 To 21 arr(i) = 0 Next i Const adTypeBinary = 1 Const adTypeText = 2 Const adModeRead = 1 Const adModeWrite = 2 Const adModeReadWrite = 3 Const adSaveCreateOverWrite = 2 Dim oStream As Object '创建流对象 Set oStream = CreateObject("ADODB.Stream") With oStream '打开流 .Open ' 设置为字节模式 .Type = adTypeBinary '写入zip文件的特征字节数组 .Write arr '另存为当前路径下的文件,adSaveCreateOverWrite参数表示如果存在源文件,则覆盖 .SaveToFile Excel.ThisWorkbook.Path & "\test.zip", adSaveCreateOverWrite '关闭流对象 .Close End With End Sub
请问空白压缩文件生成以后,如何用VBA往里面添加文件呢
Pingback引用通告: 如何用vba在word中快速移动或选中内容区域? – 算法网 /