1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
Public Function FindLastFileFromFolder(ByRef FileName As String, ByVal PathName As String, Optional ByVal FileStartingBy As String, Optional ByVal MinCreationDate As Date = #1/1/1900#) As Boolean
'---------------------------------------------------------------------------
' Procedure : FindLastFileFromFolder
' DateTime : 27/05/2008
' Author : Argyronet
' Purpose : Permet de retourner le nom du dernier fichier créé dans un dossier
' [selon le début de son nom] et [selon une date de création spécifiée]
'...........................................................................
' Parameters : FileName = Nom du fichier trouvé
' : PathName = Chemin à scruter
' FileStartingBy = Occurence de comparaison
' Return Codes : Aucun
'......................................................................
' Evolutions :
'-------------------------------------------------------------------------------------------------------------------
Dim oFSO As Scripting.FileSystemObject
Dim oFolder As Scripting.Folder
Dim oFile As Scripting.File
Dim oLastCreatedFile As Scripting.File
Dim dtmLastCreationDate As Date
'''' On Error GoTo FindLastFileFromFolder_Error
Set oFSO = New Scripting.FileSystemObject
Set oFolder = oFSO.GetFolder(PathName)
dtmLastCreationDate = MinCreationDate
For Each oFile In oFolder.Files
If IsMissing(FileStartingBy) = False Then
If oFile.DateCreated > dtmLastCreationDate Then
If Left$(oFile.Name, Len(FileStartingBy)) = FileStartingBy Then
Set oLastCreatedFile = oFile
dtmLastCreationDate = oFile.DateCreated
End If
End If
Else
If oFile.DateCreated > dtmLastCreationDate Then
Set oLastCreatedFile = oFile
dtmLastCreationDate = oFile.DateCreated
End If
End If
Next
If Not (oLastCreatedFile Is Nothing) Then
FindLastFileFromFolder = True
FileName = IIf(Right$(PathName, 1) = "\", PathName & oLastCreatedFile.Name, PathName & "\" & oLastCreatedFile.Name)
Else
Err.Raise 53, "FindLastFileFromFolder()", "Aucun fichier n'a pu être localiser dans le dossier" & vbCrLf & PathName
End If
''''FindLastFileFromFolder_Exit:
Set oLastCreatedFile = Nothing
Set oFile = Nothing
Set oFolder = Nothing
Set oFSO = Nothing
'''' Exit Function
''''FindLastFileFromFolder_Error:
'''' FindLastFileFromFolder = False
'''' FileName = vbNullString
'''' Resume FindLastFileFromFolder_Exit
End Function |
Partager