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
| Option Explicit
Dim fso, oFolder, oSubFold,fich, Src,Dest, NewFich
Set fso = CreateObject("Scripting.FileSystemObject")
Src="C:\User"
Dest="C:\Archives\User\XXXXXX"
Set oFolder = fso.GetFolder(src)
CreateFolders Dest
ScanForFile Src, Dest
' ===================================
Sub ScanForFile(srcFolder,DestFolder)
For Each Fich In oFolder.Files
If Ucase(fso.GetExtensionName(Fich.Name))="PST" Then
NewFich=DestFolder & "\" & fso.GetBaseName(Fich.Name) & TransformDateTime & ".pst"
WriteLog Fich.Path, NewFich
fso.MoveFile Fich.Path, NewFich
End If
Next
For Each oSubFold In oFolder.SubFolders
For Each Fich In OsubFold.Files
If Ucase(fso.GetExtensionName(Fich.Name))="PST" Then
NewFich=DestFolder & "\" & fso.GetBaseName(Fich.Name) & TransformDateTime & ".pst"
WriteLog Fich.Path, NewFich
fso.MoveFile Fich.Path, NewFich
End If
Next
Next
End Sub
' =================================
Function CreateFolders(Fldr)
Dim OldFolder, tb, I, NextFolder,Root
If fso.FolderExists(Fldr) Then
CreateFolders=Fldr
Exit Function
End If
tb=Split(fldr,"\")
Root="C:\"
On Error Resume Next
For I=1 to Ubound(tb)
If fso.FolderExists(Root & tb(I)) Then
Set OldFolder=fso.GetFolder(Root & tb(I))
ElseIf fso.FolderExists(Root & tb(I)) = False Then
Set OldFolder=fso.GetFolder(Root)
Set NextFolder = fso.CreateFolder(OldFolder.Path & "\" & tb(I))
End If
Root=NextFolder.Path & "\"
Next
CreateFolders=NextFolder.Path
End Function
' =================================
Function TransformDateTime()
TransformDateTime="_" & Day(Now) &"_"& Month(Now) & "_" & Year(Now) & "_" & Hour(Now) & "_" _
& Minute(Now) & "_" & Second(Now)
End Function
' ==============================
Sub WriteLog(srcFile, DestFile)
Dim f
Set f=fso.OpenTextFile(Dest & "\Journal.log",8,True)
f.WriteLine " ====> " & srcFile & " déplacé vers : " & DestFile
f.close
End Sub |
Partager