在完整的宏过程中,我正在创建一个Zip文件Folder。该文件夹具有多个子文件夹和文件。使用此代码:
Dim oApp As Object
NewZip (s_path & "\" & acc_name & ".zip")
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(s_path & "\" & acc_name & ".zip").CopyHere oApp.Namespace(s_path & "\" & acc_name & "\").items
On Error Resume Next
Do Until oApp.Namespace(s_path & "\" & acc_name & ".zip").items.Count = _
oApp.Namespace(s_path & "\" & acc_name & "\").items.Count
Application.Wait (Now + TimeValue("0:00:01"))
Loop
On Error GoTo 0
Set oApp = Nothing
Run Code Online (Sandbox Code Playgroud)
现在,我需要检查Zip小于20mb,以便可以通过邮件发送它。我发现可以使用以下行完成:
FileLen(path)
Run Code Online (Sandbox Code Playgroud)
现在,如果文件大小超过20mb,我想从该Zip的一个特定子文件夹中删除所有文件。我不知道该怎么做。我应该只创建一个原始的zip文件并尝试跳过该子文件夹中的文件,还是可以通过某种方式删除Zip中的特定文件?
我试图使用以下方法查看Zip内部:
Dim FSO As Object
Dim sh As Object, fld As Object, n As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set sh = CreateObject("Shell.Application")
Set ZipFile = sh.Namespace("C:\Users\mohit.bansal\Desktop\Test\Test.zip")
For Each fileInZip In ZipFile.Items
Debug.Print (fileInZip)
Next
Run Code Online (Sandbox Code Playgroud)
仍然无法进入Zip的子文件夹。
要从zip文件中删除文件,请尝试此操作。我正在演示如何删除一个文件。随意修改它以满足您的需求
逻辑:
.MoveHere的文件移动到用户的临时目录。这将从zip文件中删除该文件代码:(经过测试)
Option Explicit
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _
(ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Const MAX_PATH As Long = 260
Sub Sample()
Dim zipFile, oShellApp, fileToDelete, fl
zipFile = "C:\Users\routs\Desktop\Desktop.zip"
fileToDelete = "Tester.xlsm"
Set oShellApp = CreateObject("Shell.Application")
For Each fl In oShellApp.Namespace(zipFile).Items
If fl.Name = fileToDelete Then
oShellApp.Namespace(TempPath).MoveHere (fl)
End If
Next fl
Kill TempPath & fileToDelete
End Sub
'~~> Function to get the user's temp path
Function TempPath() As Variant
TempPath = String$(MAX_PATH, Chr$(0))
GetTempPath MAX_PATH, TempPath
TempPath = Replace(TempPath, Chr$(0), "")
End Function
Run Code Online (Sandbox Code Playgroud)
另类
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |