Kill命令删除错误的文件i



在Access VBA中,我有一个完成此任务的过程:

  1. 允许用户选择zip文件
  2. 将zip文件中的任何文件提取到同一目录中(在特定的用例实例,它总是从中提取Excel文件Zip文件,从不更改,并且始终使用相同的密码)
  3. 然后我希望代码在提取.xls文件

除了删除文件部分外,其他一切都很完美。问题是,当我告诉它删除"FileName.Zip"时,它正在删除"FileName.Zip"one_answers"FileName.xls"

有什么方法可以确保kill命令只删除我想删除的内容吗?我以前在各种场合使用过它,以前从未发生过这种情况。

这是我正在使用的代码:

Dim fd As FileDialog
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim i As Variant
Set db = CurrentDb
Set rs = db.OpenRecordset("tblProjectPath")
Set fd = FileDialog(msoFileDialogFilePicker)
fd.AllowMultiSelect = True
fd.Title = "Select TOC Return File(s) to process"
fd.InitialFileName = rs.Fields("ProjectPath") & "FilingReports*.zip"
fd.Show
For Each i In fd.SelectedItems
    'Debug.Print i
    Debug.Print '------------------------'
    Debug.Print i
    Unzip (i) 'The bit calling the command line unzip utility to unzip the file - just telling it to extract all files to the current folder.
    Debug.Print i
    'Kill i
    'had to take out the kill bit, b/c it was deleting both the .zip and .xls files which is not desired nor expected
    If InStr(i, ".zip") Then
        Kill i 'Tried to specify only .zip files even though think I shouldn't need to, but it's still deleting .xls files
    End If
Next i 

编辑:添加要发布的邮政编码:邮政编码:

Sub Unzip(Path As String)
    Dim strUnzip As String
    Dim QU As String 'quotation mark
    QU = Chr(34)
    strUnzip = QU & "c:program files (x86)winzipwzunzip" & QU & " -s" & _
        "ZipPassword " & _
        Path & " " '& _
    Call Shell(strUnzip)
End Sub

在这一点上,我真的不认为会有"真正的"答案。不过,无论如何,我都会发布我决定如何处理我编写这段代码的特定过程。

我将使用文件夹结构来划分文件:1.放置zip文件2.将文件解压缩到第二个文件夹3.处理完第二个文件夹中的Excel文件后,移动到第三个"完整"文件夹。

这将绕过删除错误文件的问题。

此外,问题的原因似乎与上面解压缩代码中对WinZip命令行解压缩实用程序(wzunzip)的调用有关,或者与工具本身有关。我想可能是b/c工具问我是否要覆盖现有文件,但事实并非如此,b/c当没有文件要覆盖时,我也遇到了同样的问题。

无论如何,我正试图在这一点上结束这一次。感谢Wayne G.Dunn在这方面的协助。

相关内容

  • 没有找到相关文章