Invité ___ Publication: 29 juin 2005 Publication: 29 juin 2005 Un listeur de répertoire que j'ai réaliser qui vous permettra de lister tous vos dossiers,disques durs ou CD dans un simple fichier texte daté. Ce qui peut être pratique pour retrouver un dossier sauvegardé quand on ne sait plus ou il se trouve. Recopiez le texte ci-dessous dans le block-notes et sauvegardez comme : Listeur.vbs Au moment de la sauvegarde du fichier cliquer sur le menu déroulant Type et choisir "Tous Fichiers" et dans "Nom du fichier" tapez : Listeur.vbs Attention il faut que l'extention du fichier soit bien ".vbs" et non pas ".txt" De plus il faudra autoriser le fichier si votre Antivirus vous le demande Option Explicit Dim sArg, OFSO, oShell, oStream, oFIle Dim chemin Dim typeDos Dim NbSousDossier Dim NomDosPrin Dim oShell2 Dim oFolder Dim oParent Dim cItems Dim oItem Dim sTitle 'Gestion des erreurs ou des annulations' On Error Resume Next Err.Clear 'Ouvrir l'objet application Set oShell2 = CreateObject ("Shell.Application") 'Ouvrir la boite selection de dossier BrowseForFolder' Set oFolder = oShell2.BrowseForFolder (0, "Selectionner le dossier à lister..", (0)) If (Err.Number = 0) Then ' Si l'utilisateur n'a pas appuyé le bouton annulation sTitle = oFolder.Title Set oParent = oFolder.ParentFolder Set cItems = oParent.Items For Each oItem In cItems If oItem.IsFolder = True Then If (StrComp(oItem.Name, sTitle, 1) = 0) Then 'Obtenir le chemin du dossier chemin = oItem.Path 'Obtenir le type de dossier typeDos = oItem.Type End If End If Next End If 'Annuler l'objet en cours (application)' Set oShell2 = Nothing Set oFolder = Nothing Set cItems = Nothing Set oItem = Nothing 'Normaliser le type de dossier' if typeDos = "Lecteur CD" then typeDos = "lecteur de CD" if typeDos = "Disque local" then typeDos = "disque local" if typeDos = "Dossier de fichiers" then typeDos = "dossier" if typeDos = "Dossier système" then typeDos = "dossier système" 'montrer une arborescence de répertoire simple 'Option Explicit 'Dim sArg, OFSO, oShell, oStream, oFIle Set oFSO = CreateObject("Scripting.FileSystemObject") 'Obtenir le dossier (le dossier par défaut est le dossier en cours) If Wscript.Arguments.Count > 0 Then sArg = Wscript.Arguments(0) Else sArg = "" End If 'Traiter l'arborescence entière (si valide) If oFSO.FolderExists(chemin) Then 'Nom du dossier principal' NomDosPrin = oFSO.GetFileName(chemin) 'Si NomDosPrin = "" et si c'est un disque local ou un lecteur de CD' 'alors c'est le chemin' If NomDosPrin = "" and typeDos = "disque local" or typeDos = "lecteur de CD" Then NomDosPrin = chemin end if 'Etablir l'argument à envoyer dans la Sub ShowTree' sArg = oFSO.GetAbsolutePathName(chemin) '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""' 'Demander le nom et le chemin du fichier texte' Dim objDialog Dim intReturn Dim NomFicTxt Dim LetLecteur 'Prendre la première lettre si disque local ou lecteur de CD' If typeDos = "disque local" or typeDos = "lecteur de CD" Then LetLecteur = Left(chemin,1) 'Lecteur par défaut c:\ NomFicTxt = "c:\Listing du " & typeDos & " " & LetLecteur 'Sinon prendre le nom complet' else 'Lecteur par défaut c:\ NomFicTxt = "c:\Listing du " & typeDos & " " & NomDosPrin end if '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""' 'Creér l'objet Sauver sous' Set objDialog = CreateObject("SAFRCFileDlg.FileSave") objDialog.FileName = NomFicTxt 'Mettre ici le nom de fichier objDialog.FileType = "txt" 'Type de fichier genre Page HTML|*.htm intReturn = objDialog.OpenFileSaveDlg 'Si pas d'annulation' If intReturn Then NomFicTxt= objDialog.FileName & ".txt" 'Si annulation alors sortie' Else Wscript.Quit End If 'Annuler l'objet en cours (Sauver sous)' Set objDialog = Nothing '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""' 'Créer l'objet TextFile Set oFile = oFSO.CreateTextFile(NomFicTxt,True) 'Fermer le fichier texte oFile.Close() 'Etablir la variable oStream' Set oStream = oFSO.OpenTextFile(NomFicTxt,2) oStream.WriteLine "Date : " & Date oStream.WriteBlankLines 1 oStream.WriteLine "Arbre du " & typeDos & " " & sArg oStream.WriteBlankLines 2 oStream.WriteLine sArg msgbox "Veuillez attendre que le fichier soit affiché dans le block notes." & vbCrLF & "Soyez patient car cela peut prendre un certain temps."& vbCrLF & vbCrLF & "Cliquer sur le bouton OK quand vous aurez lu ce message.",vbinformation ,"Listeur de dossiers" ShowTree "",oFSO.GetFolder(sArg), oStream If NomDosPrin <> "" and typeDos = "disque local" or typeDos = "lecteur de CD" Then oStream.WriteBlankLines 1 oStream.WriteLine "Total de sous-dossiers dans le "&typeDos&" "&NomDosPrin&" "&NbSousDossier end if If NbSousDossier = 0 Then oStream.WriteBlankLines 1 oStream.WriteLine "Aucun sous-dossiers dans le " & typeDos & " " & NomDosPrin end if set oShell = createObject ("Wscript.shell") oShell.run "notepad.exe " & NomFicTxt,1,true 'Annuler l'objet en cours' Set oFSO = NOTHING End If '///////////////////////////////////////////////// 'ShowTree ' Montrer un niveau de l'arborescence du dossier ' ' sIndent Mettre en retrait la chaine ' oFolder Objet dossier pour ce niveau dans l'arborescence ' Sub ShowTree(sIndent, oFolder, oStream) Dim oSubFolder, ix, oLine ix = 1 For Each oSubFolder In oFolder.SubFolders oLine = sIndent & " +--" & oSubFolder.Name oStream.WriteLine oLine If ix <> OFolder.SubFolders.Count Then ShowTree sIndent & " | ",oSubFolder, oStream Else ShowTree sIndent & " ",oSubFolder, oStream End If ix = ix+1 Next NbSousDossier = OFolder.SubFolders.Count If OFolder.SubFolders.Count >0 and oFolder.Name <> "" Then oStream.WriteLine sIndent &"Total de sous-dossiers dans le "&typeDos&" "&oFolder.Name&": "&OFolder.SubFolders.Count End If End Sub '/////////////////////////////////////////////////// :good:
LAMOUCHE72 Publication: 29 juin 2005 Publication: 29 juin 2005 moi ca ne marche pas! :carton: peux tu m'expliquer j'ai du rater une étape!
Invité ___ Publication: 30 juin 2005 Publication: 30 juin 2005 (modifié) moi ca ne marche pas! :carton: peux tu m'expliquer j'ai du rater une étape! <{POST_SNAPBACK}> Si quand tu double cliques sur le fichier tu as le block-notes qui s'ouvre alors tu n'as pas la bonne extention(vbs)de fichier. Comme je l'ai dit plus haut il faut moment de la sauvegarde du fichier cliquer sur le menu déroulant "Type" et choisir "Tous Fichiers" et dans "Nom du fichier" écrire : Listeur.vbs pour le nom du fichier à sauvegarder. Il peut arriver aussi que ton antivirus bloque le script vbs dans ce cas il faut autoriser le lancement du fichier. Ou alors tu n'a pas le VBSript installé sur ta machine(fourni avec IE et Windows XP) dans ce cas je te propose de télécharger un logiciel Directory Lister plus élaborer et qui te rendras les mêmes services ici : http://www.krksoft.com/download.html Il est traduit en français sauf l'aide qui est en anglais. Ps : Quand j'ai écrit "recopiez le texte ci-dessous" c'est faire un copié-collé de la totalité du texte alors ne vous amusez pas à taper le texte vous même sur le block-notes car vous feriez des erreurs ! L’exécution de scripts VBS repose sur le moteur Windows Scripting Host qui doit être installé sur votre machine. Pour plus de détails, consultez: http://msdn.microsoft.com/library/default....tml/vbswhat.asp Pour télécharger directement les fichiers, consultez: Microsoft Windows Script 5.6 (Windows 9x, Me, NT4) ou Microsoft Windows Script 5.6 (Windows 2000, XP) http://msdn.microsoft.com/library/default....list/webdev.asp :wacko: Modifié 30 juin 2005 par ___
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant