3

我以前从未使用 VB 做过任何事情,我正在尝试解决这个脚本的一个小问题。基本上,脚本应该在文件夹中查找所有 jpg,如果文件名已经存在,则将其从目标文件夹中删除,将值添加到表中,然后重命名源文件,使其存在于目标文件夹中。

该脚本在一定程度上起作用,例如,如果文件不存在,它将重命名任何文件,但对于已经存在的任何文件,它只处理一个然后结束。我可以多次运行它以清除其余部分,但宁愿它一次将它们全部清除。我已经做了很多阅读,但看不出哪里出了问题。任何人都可以对此有所了解吗?

Public Function GetLPUFileAddress()

Dim strSourceFolder As String
Dim strFile As String
Dim strTargetFolder As String

Dim dbs As DAO.Database
Dim rstMgr As DAO.Recordset

strSourceFolder = "C:\Users\Images\LPU-HOLDING\"
strFile = Dir(strSourceFolder & "*.JPG")
strTargetFolder = "C:\Users\Images\LPU\"

Do While strFile <> ""
    If Dir(strTargetFolder & strFile) <> "" Then Kill strTargetFolder & strFile
    CurrentDb.Execute "INSERT INTO TBL_LPU ( File_Name, Import_Date ) VALUES ('" & strFile & "',Date())"
    Name strSourceFolder & strFile As strTargetFolder & strFile
    strFile = Dir
Loop

End Function
4

1 回答 1

4

通过使用适当的过滤器调用Dir()函数,例如"C:\Users\Images\LPU\*.JPG",您开始枚举并获取第一个文件名。
之后,在Dir()不带任何参数的情况下重复调用该函数,您将获得所有*.JPG文件名,每次调用一个。
如果您在任何时候Dir()使用参数调用,这将重置当前枚举并开始一个新枚举。

因此Dir(),当您使用Dir(). 这将重置枚举。

您必须使用其他方法检查文件的存在性,或者只是尝试在不检查的情况下杀死它,而忽略错误

于 2012-08-21T15:19:53.020 回答