如果阁下都是这样test+8位时间+(数字).txt格式的话,代码如下
PublicClassForm1
'首先确认你的文档是这种形式---test20111123(15).txt
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimstrFileAsString()=System.IO.Directory.GetFiles("C:\test")
IfstrFile.Length>0Then
DimaArrayAsNewArrayList
DimstrTempAsString
Dimi,jAsInteger
Fori=0TostrFile.Length-1
IfUCase(Microsoft.VisualBasic.Right(strFile(i),4))=".TXT"Then'筛选txt文本
j=0
DoWhile(Mid(strFile(i),Len(strFile(i))-4-j,1))"\"
j+=1
Loop
strTemp=Mid(strFile(i),Len(strFile(i))-j+1,j-4)'取文件名称如test20111123(1)
aArray.Add(strTemp)
EndIf
Next
IfaArray.Count>0Then
DimmaxAsString
max=aArray.Item(0)
Fori=1ToaArray.Count-1
max=Compare(max,aArray.Item(i))
Next
MsgBox("要查找的最新文件名为"&max)
EndIf
EndIf
EndSub
PrivateFunctionCompare(ByValaAsString,ByValbAsString)AsString
DimstrA1,strA2,strB1,strB2AsString
IfInStr(a,"(")Then
strA2=Mid(a,InStr(a,"(")+1,InStr(a,")")-InStr(a,"("))
Else
strA2="0"
EndIf
strA1=Mid(a,1,InStr(a,"("))
IfInStr(b,"(")Then
strB2=Mid(b,InStr(b,"(")+1,InStr(b,")")-InStr(b,"("))
Else
strB2="0"
EndIf
strB1=Mid(b,1,InStr(b,"("))
IfVal(strB1)>Val(strA1)Then
Returnb
ElseIfVal(strB1)=Val(strA2)Then
Returnb
Else
Returna
EndIf
EndIf
EndFunction
EndClass
|