我之前从未做过任何事情,我正试图解决这个脚本的一个小问题。基本上,脚本应查找文件夹中的所有jpgs,如果文件名已存在,则已将其从目标文件夹中删除,将值添加到表中,然后重命名源文件,使其存在于目标文件夹中。
此脚本在某种程度上有效,例如,如果文件不存在,它将重命名任何文件,但对于已存在的任何文件,它只处理一个然后结束。我可以多次运行它来清除其余部分但是宁愿它一次性清除它们。我做了很多阅读,但看不出有什么问题。任何人都可以对此有所了解吗?
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
答案 0 :(得分:4)
通过使用适当的过滤器(例如Dir()
)调用"C:\Users\Images\LPU\*.JPG"
函数,可以启动枚举并获取第一个文件名。
之后,在没有任何参数的情况下反复调用Dir()
函数,您将获得所有*.JPG
个文件名,每个调用一个。
如果您在任何时候使用参数调用Dir()
,这将重置当前枚举并开始新的枚举。
因此,当您使用Dir()
枚举时,无法使用Dir()
检查文件夹中文件的存在。这会重置枚举。
您必须使用some other way的checking existance of the file,或者只是尝试杀死它而不检查ignoring the error。