| 12
 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
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 
 | Option Explicit
Const outFile = "file.html"
Dim oFilesys,oFiletxt,Path,Ws,SourceImgFolder,StartTime,MsgTitre,DurationTime,objFolder,CheminDossier,Dossier,Copyright
Dim SizeKo,SizeMo,SizeGo,objShell,fso,size
Copyright = "© Hackoo © 2013"
MsgTitre = "Générer une arborescence d'un dossier en HTML "&Copyright&""
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Veuillez choisir un dossier "&Copyright, 1, "c:\Programs")
If objFolder Is Nothing Then
        WScript.Quit
End If
CheminDossier = objFolder.self.path
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.GetFolder(CheminDossier)
If Dossier.Size = 0 Then
        MsgBox "Le Dossier " & CheminDossier & " est vide",16,"Dossier Vide"
        WScript.Quit
End if
    SizeKo = Round(FormatNumber(Dossier.Size)/(1024),1) & " Ko" 'Taille en Ko avec 1 chiffre après la Virgule
    SizeMo = Round(FormatNumber(Dossier.Size)/(1048576),1) & " Mo" 'Taille en Mo avec 1 chiffre après la Virgule
    SizeGo = Round(FormatNumber(Dossier.Size)/(1073741824),1) & " Go" 'Taille en Go avec 1 chiffre après la Virgule
 
	If Dossier.size < 1024 Then 
	   Size = Dossier.size & " Octets"
	elseif Dossier.size < 1048576 Then 
	   Size = SizeKo
	elseif Dossier.size < 1073741824 Then 
	   Size = SizeMo
	else
	   Size = SizeGo
	end If
Set oFilesys = CreateObject("Scripting.FileSystemObject")
Set oFiletxt = oFilesys.CreateTextFile(outFile,True)
Set Ws = CreateObject("Wscript.Shell")
 
oFiletxt.WriteLine("<html><body text=white bgcolor=#1234568><style type='text/css'>"&_
"a:link {color: #F19105;}"&_
"a:visited {color: #F19105;}"&_
"a:active {color: #F19105;}"&_
"a:hover {color: #FF9900;background-color: rgb(255, 255, 255);}"&_
"</style>")
SourceImgFolder = "http://upload.wikimedia.org/wikipedia/commons/a/a4/Icons-mini-folder.gif"
StartTime = Timer 'Début du Compteur Timer
oFiletxt.WriteLine("+ <img src="&SourceImgFolder&">  <a target=_Blank href='file:///" & CheminDossier & "'>" & CheminDossier & "</a><font color=""Yellow"">  ["&Size&"]</font><br><br>")
oFiletxt.WriteLine(List(CheminDossier))
oFiletxt.WriteLine("</body></hmtl>")
oFiletxt.Close
DurationTime = FormatNumber(Timer - StartTime, 0) & " seconds." 'La durée de l'exécution du script
Ws.Popup "La génération au format HTML est terminée dans "& DurationTime & " !","5",MsgTitre,64
Ws.Run outFile
 
Function List(directory)
Dim fsoFolder,Folder,subfolders,objFile,objFolder,subfiles,SourceImgFile,NBFiles,Size,SizeKo,SizeMo,SizeGo,SourceImgFolder
On Error Resume next
    Set fsoFolder = CreateObject("Scripting.FileSystemObject")
    Set folder = fsoFolder.GetFolder(directory)
    Set subfolders = folder.SubFolders
    Set subfiles = folder.Files
    SourceImgFolder = "http://upload.wikimedia.org/wikipedia/commons/a/a4/Icons-mini-folder.gif"
    SourceImgFile = "http://upload.wikimedia.org/wikipedia/en/d/d8/VBSccript_file_format_icon.png"
    NBFiles = 0
    For each objFile in subfiles
    NBFiles = NBFiles + 1
    SizeKo = Round(FormatNumber(objFile.Size)/(1024),1) & " Ko" 'Taille en Ko avec 1 chiffre après la Virgule
    SizeMo = Round(FormatNumber(objFile.Size)/(1048576),1) & " Mo" 'Taille en Mo avec 1 chiffre après la Virgule
    SizeGo = Round(FormatNumber(objFile.Size)/(1073741824),1) & " Go" 'Taille en Go avec 1 chiffre après la Virgule
 
	If objFile.size < 1024 Then 
	   Size = objFile.size & " Octets"
	elseif objFile.size < 1048576 Then 
	   Size = SizeKo
	elseif objFile.size < 1073741824 Then 
	   Size = SizeMo
	else
	   Size = SizeGo
	end If
 
        oFiletxt.WriteLine("<dd>"& NBFiles &" |-<img src="&SourceImgFile&" height=""18"" width=""20"">  <a target=_Blank href='file:///" & objFile.Path & "'>" & objFile.Name & "</a>  ("&Size&")<br/>")
    Next
 
    For each objFolder in subfolders
         SizeKo = Round(FormatNumber(objFolder.Size)/(1024),1) & " Ko" 'Taille en Ko avec 1 chiffre après la Virgule
         SizeMo = Round(FormatNumber(objFolder.Size)/(1048576),1) & " Mo" 'Taille en Mo avec 1 chiffre après la Virgule
         SizeGo = Round(FormatNumber(objFolder.Size)/(1073741824),1) & " Go" 'Taille en Go avec 1 chiffre après la Virgule
 
     If objFolder.size < 1024 Then 
			Size = objFolder.size & " Octets"
     elseif objFolder.size < 1048576 Then 
         Size = SizeKo
     elseif objFolder.size < 1073741824 Then 
        Size = SizeMo
     else
        Size = SizeGo
     end If
 
        oFiletxt.WriteLine("<br><DL>+ <img src="&SourceImgFolder&">  <a target=_Blank href='file:///" & objFolder.Path & "'>" & objFolder.Path & "</a>  <font color=""Yellow"">["&Size&"]</font><br><br/>")
        List(objFolder) 'Appel récusive de la fonction List
    Next    
End Function | 
Partager