Aller au contenu
Le Web des Cheminots

Un Listeur De Répertoire


Messages recommandés

Publication:

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:

Publication: (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é par ___

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.