gpt4 book ai didi

vbscript - VB Do While 仅适用于一次迭代

转载 作者:行者123 更新时间:2023-12-03 06:33:19 25 4
gpt4 key购买 nike

我以前从未使用过 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

最佳答案

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

因此,在使用 Dir() 进行枚举时,无法使用 Dir() 检查文件夹中文件是否存在。这将重置枚举。

您必须使用 some other waychecking existance of the file ,或者只是尝试在不检查的情况下杀死它,ignoring the error .

关于vbscript - VB Do While 仅适用于一次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com