在使用VB6的文件夹中查找文件的最新日期时遇到问题
我需要找到给定目录中最新日期的文件。我还不是VB6的初学者,这正是我需要用于一些旧代码的地方。在杀掉谷歌一整天之后,下面是我到目前为止所拥有的。但是它找不到正确的文件。有人能帮忙吗? 谢谢在使用VB6的文件夹中查找文件的最新日期时遇到问题,vb6,Vb6,我需要找到给定目录中最新日期的文件。我还不是VB6的初学者,这正是我需要用于一些旧代码的地方。在杀掉谷歌一整天之后,下面是我到目前为止所拥有的。但是它找不到正确的文件。有人能帮忙吗? 谢谢 Dim sFile1作为字符串 将sFile2设置为字符串 Dim Dfile1日期作为日期 Dim dFile2Date作为日期 sFile1=Dir(“c:\test\*.*”,vbNormal) 做 sFile2=Dir 如果是sFile1“”,则dFile1Date=FileDateTime(“c:\
Dim sFile1作为字符串
将sFile2设置为字符串
Dim Dfile1日期作为日期
Dim dFile2Date作为日期
sFile1=Dir(“c:\test\*.*”,vbNormal)
做
sFile2=Dir
如果是sFile1“”,则dFile1Date=FileDateTime(“c:\test\”&sFile1)
如果是sFile2“”,则dFile2Date=FileDateTime(“c:\test\”&sFile2)
如果dFile1Date>dFile2Date,则sFile2=sFile1
循环直到sFile2=“”
FormVersionDate=sFile1
调用MsgBox(FormVersionDate、VBEQUOTION、App.Title)
如果您仔细查看代码,您会发现无论逻辑结果如何,sFile1
都不会被重新分配,因此在最后调用它的值会使所有do循环变得无关。另外,它看起来像是FormVersionDate
可能应该是一个日期,但是您要为它分配一个字符串
我使用嵌套循环重新编写了代码,以避免与过度注释无关的逻辑:
Dim sFile1 As String
Dim sFile2 As String
Dim dFile1Date As Date
Dim dFile2Date As Date
'Get first File
sFile1 = Dir("c:\test\*.*", vbNormal)
'Make sure file exists
If sFile1 <> "" Then
'Since file exists retrieve DateTime for file
dFile1Date = FileDateTime("c:\test\" & sFile1)
'begin loop for other files
Do
'Retrieve new file
sFile2 = Dir
'Make sure file exists
If sFile2 <> "" Then
'Retrieve DateTime for file
dFile2Date = FileDateTime("c:\test\" & sFile2)
'If old DateTime is older than new DateTime
If dFile1Date < dFile2Date Then
'Overwrite first file variables with newer file info
sFile1 = sFile2
dFile1Date = dFile2Date
End If
End If
'Loop until new file doesn't exist
Loop Until sFile2 = ""
End If
'If you actually want the date, you should use dFile1Date instead of sFile1.
FormVersionDate = sFile1
Call MsgBox(FormVersionDate, vbExclamation, App.Title)
Dim sFile1作为字符串
将sFile2设置为字符串
Dim Dfile1日期作为日期
Dim dFile2Date作为日期
'获取第一个文件
sFile1=Dir(“c:\test\*.*”,vbNormal)
'确保文件存在
如果是sFile1“”,则
'由于文件存在,检索文件的日期时间
dFile1Date=FileDateTime(“c:\test\”&sFile1)
'开始其他文件的循环
做
'检索新文件
sFile2=Dir
'确保文件存在
如果是sFile2“”,则
'检索文件的日期时间
dFile2Date=FileDateTime(“c:\test\”和sFile2)
'如果旧日期时间早于新日期时间
如果dFile1Date
如果您仔细查看代码,您会发现无论逻辑结果如何,sFile1
都不会被重新分配,因此在最后调用它的值会使所有do循环变得无关。另外,它看起来像是FormVersionDate
可能应该是一个日期,但是您要为它分配一个字符串
我使用嵌套循环重新编写了代码,以避免与过度注释无关的逻辑:
Dim sFile1 As String
Dim sFile2 As String
Dim dFile1Date As Date
Dim dFile2Date As Date
'Get first File
sFile1 = Dir("c:\test\*.*", vbNormal)
'Make sure file exists
If sFile1 <> "" Then
'Since file exists retrieve DateTime for file
dFile1Date = FileDateTime("c:\test\" & sFile1)
'begin loop for other files
Do
'Retrieve new file
sFile2 = Dir
'Make sure file exists
If sFile2 <> "" Then
'Retrieve DateTime for file
dFile2Date = FileDateTime("c:\test\" & sFile2)
'If old DateTime is older than new DateTime
If dFile1Date < dFile2Date Then
'Overwrite first file variables with newer file info
sFile1 = sFile2
dFile1Date = dFile2Date
End If
End If
'Loop until new file doesn't exist
Loop Until sFile2 = ""
End If
'If you actually want the date, you should use dFile1Date instead of sFile1.
FormVersionDate = sFile1
Call MsgBox(FormVersionDate, vbExclamation, App.Title)
Dim sFile1作为字符串
将sFile2设置为字符串
Dim Dfile1日期作为日期
Dim dFile2Date作为日期
'获取第一个文件
sFile1=Dir(“c:\test\*.*”,vbNormal)
'确保文件存在
如果是sFile1“”,则
'由于文件存在,检索文件的日期时间
dFile1Date=FileDateTime(“c:\test\”&sFile1)
'开始其他文件的循环
做
'检索新文件
sFile2=Dir
'确保文件存在
如果是sFile2“”,则
'检索文件的日期时间
dFile2Date=FileDateTime(“c:\test\”和sFile2)
'如果旧日期时间早于新日期时间
如果dFile1Date
尝试通过变量名进行通信有很多话要说。通常,结果比添加大量补偿注释要清楚得多,尤其是在一个简短的过程中
Dim Directory As String
Dim CurrFile As String
Dim CurrDate As Date
Dim NewestDate As Date
Dim NewestFile As String
Directory = "c:\test\"
CurrFile = Dir$(Directory & "*.*", vbNormal)
Do While Len(CurrFile) > 0
CurrDate = FileDateTime(Directory & CurrFile)
If CurrDate > NewestDate Then
NewestDate = CurrDate
NewestFile = CurrFile
End If
CurrFile = Dir$()
Loop
MsgBox CStr(NewestDate) & vbNewLine & NewestFile
请注意,这不会检测并警告其中没有可见文件的目录。您可以只查找一个空(“”
newest文件
。尝试通过变量名进行通信有很多话要说。通常,结果比添加大量补偿注释要清楚得多,尤其是在一个简短的过程中
Dim Directory As String
Dim CurrFile As String
Dim CurrDate As Date
Dim NewestDate As Date
Dim NewestFile As String
Directory = "c:\test\"
CurrFile = Dir$(Directory & "*.*", vbNormal)
Do While Len(CurrFile) > 0
CurrDate = FileDateTime(Directory & CurrFile)
If CurrDate > NewestDate Then
NewestDate = CurrDate
NewestFile = CurrFile
End If
CurrFile = Dir$()
Loop
MsgBox CStr(NewestDate) & vbNewLine & NewestFile
请注意,这不会检测并警告其中没有可见文件的目录。您可以只查找一个空(“”
newest文件
。谢谢。我也很感谢你的详细解释。谢谢。我也很感谢你的详细解释。