begin process at 2010 03 20 05:33:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBScript

 > [VBSCRIPT] LISTE DES FICHIERS, D'UN RÉPERTOIRE, TRIÉS PAR DATE DE MODIFICATION (DU + RÉCENT AU + ANCIEN)

[VBSCRIPT] LISTE DES FICHIERS, D'UN RÉPERTOIRE, TRIÉS PAR DATE DE MODIFICATION (DU + RÉCENT AU + ANCIEN)


 Information sur la source

Note :
Aucune note
Catégorie :VBScript Classé sous :vbs, tri, algirithme, fichier, liste Niveau :Débutant Date de création :29/04/2006 Date de mise à jour :12/05/2007 15:46:08 Vu :30 314

Auteur : JMO

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Ce script (VBS) a pour but d'afficher, dans une MsgBox, la liste des fichiers
d'un répertoire, triée par date de modification (du + récent au + ancien)

Translation de VB6 en VBS du code (réponse) proposé par "michelxld" (forum VBFrance)
http://www.vbfrance.com/infomsg/OUVERTUR E-FICHIER-RECENT-2_720974.aspx (le 22/04/2006 06:19:25)
Un grand MERCI à "rvblog" sans lequel ce script (version VBS) ne serait pas fonctionnel !!!"


jean-marc

Source

  • Option Explicit
  • Const PathMDB = "D:\Mes_scripts_VBFrance"
  • MsgBox TriRepertoire,,"Enumération " & PathMDB
  • '---lister les fichiers du répertoire ---
  • Function TriRepertoire()
  • Dim fso, fichier, fileItem
  • Dim i, imax, z, valeur, cible, liste
  • Set fso = CreateObject("Scripting.FileSystemObject")
  • imax = 0
  • 'début de l'énumération
  • For Each fichier In fso.GetFolder(PathMDB).Files
  • Set fileItem = fso.GetFile(fichier)
  • imax = imax + 1
  • ReDim Preserve Tableau(2, imax)
  • Tableau(1, imax) = Fichier.Name
  • Tableau(2, imax) = FileItem.DateLastModified
  • '---trier les fichiers par ordre décroissant de création ---
  • Do
  • Valeur = 0
  • For i = 1 To imax - 1
  • If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
  • For z = 1 To 2
  • Cible = Tableau(z, i)
  • Tableau(z, i) = Tableau(z, i + 1)
  • Tableau(z, i + 1) = Cible
  • Next
  • Valeur = 1
  • End If
  • Next
  • Loop While Valeur = 1
  • Set fileItem = nothing
  • Next
  • 'Affichage du résultat classé
  • For i = 1 To imax
  • liste = liste &vbTab& i &vbTab& Tableau(1, i) &Space(2)&vbTab&vbTab& Tableau(2, i) &vbCr
  • 'MsgBox liste,,i & " / " & imax &Space(3)& "Liste du répertoire"&Space(3)& PathMDB
  • If i = imax Then MsgBox liste ,,"Liste du répertoire" &Space(3)& PathMDB
  • Next
  • TriRepertoire = liste
  • Set fso = nothing
  • End Function
Option Explicit

Const PathMDB   = "D:\Mes_scripts_VBFrance" 

MsgBox TriRepertoire,,"Enumération " & PathMDB
'---lister les fichiers du répertoire ---
Function TriRepertoire()
Dim fso, fichier, fileItem
Dim i, imax, z, valeur, cible, liste
Set fso = CreateObject("Scripting.FileSystemObject")

imax = 0
'début de l'énumération
For Each fichier In fso.GetFolder(PathMDB).Files
    Set fileItem = fso.GetFile(fichier)
    
    imax = imax + 1
    ReDim Preserve Tableau(2, imax)
    Tableau(1, imax) = Fichier.Name
    Tableau(2, imax) = FileItem.DateLastModified

    '---trier les fichiers par ordre décroissant de création ---
    Do
    Valeur = 0
    For i = 1 To imax - 1
    If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
       For z = 1 To 2
           Cible = Tableau(z, i)
           Tableau(z, i) = Tableau(z, i + 1)
           Tableau(z, i + 1) = Cible
       Next
       Valeur = 1
    End If
    Next 
    Loop While Valeur = 1
    Set fileItem = nothing
Next

'Affichage du résultat classé
For i = 1 To imax
    liste = liste &vbTab& i &vbTab& Tableau(1, i) &Space(2)&vbTab&vbTab& Tableau(2, i) &vbCr
    'MsgBox liste,,i & " / " & imax &Space(3)& "Liste du répertoire"&Space(3)& PathMDB 
    If i = imax Then MsgBox  liste ,,"Liste du répertoire" &Space(3)& PathMDB 
Next
TriRepertoire = liste

Set fso = nothing 
End Function



 Historique

29 avril 2006 13:47:05 :
comprendre tranlation et non transation !
13 avril 2007 13:31:22 :
salut Julien, Tu as entièrement raison ....Script modifié en conséquence. Dommage (ou heureusement) que l'on ne puisse pas modifier "la bible SCRIPT56.CHM" !!! J'ai acheté récemment le book "Scripting Windows" (Eyrolles). Bonne synthèse de vbs, wsh et wmi. A+. jean-marc
12 mai 2007 15:46:08 :
Entièrement raison avec vous (soldier8514). Je viens de remplacer la version erronée.

 Sources du même auteur

GESTION DES HEURES DE NUIT (22H-0H) - CALCUL DE DATES
INVENTAIRE FICHIERS SUR SERVER DISTANT OU LOCAL
EVENTVIEWER - NTLOGEVENT - EXTRACTION INFORMATIONS DU JOURNA...
[VBSCRIPT] RECHERCHE D'UN CARACTÈRE OU D'UNE CHAINE DE CARAC...
Source avec Zip EXEMPLES DE PROCÉDURES VBSCRIPT

 Sources de la même categorie

SURVEILLER UN SERVICE ET FORCER SON REDEMARRAGE par fabkiller
CORRIGER RÉCURSIVEMENT LA CIBLE DES RACCOURCIS D'UN RÉPERTOI... par sammounier
Source avec Zip COMMENT RENOMMER UN OU PUSIEURS NOM DE GROUPES ACTIVE DIRECT... par drassef14
Source avec Zip RECHERCHER TOUS LES FICHIERS DONT L'EXTENSION EST *.VBS ET L... par hackoo
Source avec Zip DÉPLACER ET PARAMÉTRER LA BARRE DES TACHES / LE MENU DÉMARRE... par MS1969

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) SCANLIST V4 par pingouin84k
Source avec Zip Source avec une capture LISTER FICHIERS D'UN DOSSIER par fedexx40
Source avec Zip Source avec une capture GESTION DE LISTES (FUSION, COMPARAISON, TRI...) par Renfield
Source avec Zip LISTE DE FICHIERS SUR UN DISQUE EN VB6 par CFCTABLE
Source avec Zip Source .NET (Dotnet) CLASSE LISTE DE FICHIER RÉCURSIVE par elwingil

Commentaires et avis

Commentaire de jrivet le 13/04/2007 09:04:31

Salut JMO,

J'ai vu ce lien sur une page du forum alors je viens voir.
J'ai juste une petite suggestion. Pourquoi utiliser des variables qui n'ont pas forcément lieu d'être,
Je pense par exemple Dossier, à fic et a f.
Je m'explique
On peu très bien mettre
For Each fichiers In fso.GetFolder(Path).Files

je suis d'accord avec toi, c'est peu être moins lisible, et moins simple à comprendre.

En revanche ce dont je suis sur c'est que f ne sert strictement à rien puisque fichiers represente déjà f donc

Set f = fso.GetFile(fichiers) est inutile

Enfin ceci est juste mon avis (personnel qui n'engage que moi) :)

@ller à plus sur le forum.
Julien


Commentaire de soldier8514 le 12/05/2007 15:21:24

j'ai testé _ ça affiche dans le désordre (testé avec 30 images enregistrée sur le disque dur à 5 secondes d'intervalle chacune ) _ conclusion : ya un tres gros bug dans ce code  

Commentaire de soldier8514 le 12/05/2007 15:22:26

tu peus montrer un exemple de projet qui fonctionne avec ce code stp _ car jai un gros doute là ...

Commentaire de soldier8514 le 12/05/2007 15:41:06

ok _ j'ai trouvé pkoi ça marche pas _ l'algo avait mal été retranscrit

il faut remplacer
For imax = 1 To imax - 1

par
For i = 1 To i = (imax - 1)

ensuite si vous utilisez path alors ce paramètre d'entrée est à supprimer puisqu'il ne sert jamais : strPath

ensuite si vous voulez lister le contenu du tableau dans un composant queconque ( combo , listbox etc ... ) il vaut mieux déclarer la variable imax en tant que variable globale ( la sortir de la fonction ShowFolderList

Commentaire de soldier8514 le 12/05/2007 15:42:19

voilà la version corrigée :

dim imax

'....
'....


Function ShowFolderList()


Dim fso, fichier, strListe, r
Dim Valeur, z, Cible, liste
Set fso = CreateObject("Scripting.FileSystemObject")

imax = 0
For Each fichier In fso.GetFolder(strPath).Files
imax = imax + 1
ReDim Preserve Tableau(2, imax)
Tableau(1, imax) = fichier.Name
Tableau(2, imax) = fichier.DateLastModified

Valeur = 0
For i = 1 To i = (imax - 1)
If CDate(Tableau(2, imax)) < CDate(Tableau(2, imax + 1)) Then
For z = 1 To 2
Cible = Tableau(z, imax)
Tableau(z, imax) = Tableau(z, imax + 1)
Tableau(z, imax + 1) = Cible
Next
Valeur = 1
End If
Next
Next

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Affichage du résultat des fichiers triés par date de modification
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
liste = ""
For r = 1 To imax
liste = liste & vbCrLf & r & " " & Tableau(2, r) & " " & Tableau(1, r)
Next
liste = vbCrLf & "N° Date de modification Nom du fichier" & vbCrLf & liste
ShowFolderList = liste

Set fso = Nothing
End Function

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment faire un tri alphabetique d'une liste de nom? [ par Cerber ] Je desire trier une liste de nom par ordre alphabetique.Le programme prend pour l'instant des données dans une page excel et crée une page html ou il Tri d'un fichier pour un jeu [ par @ thedentiste @ ] J'aimerai savoir comment peut on trier un fichierc'est pour faire une table des scores avec deux éléments le nom du joueur et le score Merci d'avance@ Création d'une base de données Oracle dans un fichier vbs [ par Fatma ] Je recherche la dll qui me permettra de créer une base de données Oracle dasn un fichier vbs comme la dll SQLDMO suivante :WScript.createObject("SQLDM Comment creer un fichier avec l'extention VBS [ par crackenkill ] Comment creer un fichier avec l'extention VBS car des que je la mait manuellement le pc dit qu'il y a un erreur liste box [ par Wind ] J'aimerais lier une listbox avec un fichier de données (pas de basse de donnée mais genre fichier .ini ou txt).et en plus je voudrais que quand je cli J ai un probleme [ par Delpieron ] Voila comme un con j ai clique sur un fichier .vbs et apres cela a commencer un pb assez byzarre dans mon ordi : les fichier jpg et mp3 sont en .mp3.v copier chaque ligne d'un fichier text dans une liste ou combo [ par boujouman ] Voilà ma situation :Dans mon programme, j'utilise les fichiers pour stocker des informations. Toutefois, je voudrais sauvegarder les noms des utilisat imprimer liste des fichier du disque [ par kut ] je voudrai imprimer la liste des fichier du disque tout en en imprimant le schema d'arborescence comme ceciracine |------rep1 | |- fichier1 Appel sub depuis fichier .vbs [ par lesky ] G un PETIT PROBLEME je veux appeler une fonction definit comme ceci : Public Sub CC_InitCortWordDDEMaq(strNomStruct As String) Fichier->Tableau->ComboBox [ par iubito ] Bonjour @ tous !Voilà g 1 truc à faire que je sais bien faire en Access (base de données+formulaire+VBA) mais pas en VB pur.J'ai dans un fichier .txt


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales