Page 1 sur 1

liste de fichiers répondant a une expression régulière

Publié : dim. 04/nov./2012 10:19
par Thyphoon
Voici une petite procédure sans prétention que j'utilise pour récupérer une liste de fichiers/répertoires répondant a une expression régulière
le "*" de ExamineDirectory() étant parfois un peu léger.
Voilà si vous avez des idées pour améliorer ce code n’hésitez pas. Et comme d'habitude vous pouvez l'utiliser et le modifier comme bon vous semble.

Code : Tout sélectionner

;####################
;#   getFilesList   #
;####################
;add to a string list all files/folders who match the name Schema
;*files.s() : pointer to a string list
;path       : path where search name schema
;NameSchema : use pcre reg to define Schema name. ex:^fanArt-[0-9]*(\.jpg|\.png)
;entryType  : choose files(#getFilesType_Files) or folder(#getFilesType_Folders) or files and folders (#getFilesType_Files|#getFilesType_Folders)

#getFilesType_Folders=1
#getFilesType_Files=2

Procedure getFilesList(List *files.s(),path.s,NameSchema.s,entryType.b=#getFilesType_Files)
  If CreateRegularExpression(0, NameSchema.s)
    If ExamineDirectory(0, path, "*.*")  
      While NextDirectoryEntry(0)
        If (DirectoryEntryType(0) = #PB_DirectoryEntry_File And (entryType & #getFilesType_Files)) Or (DirectoryEntryType(0) = #PB_DirectoryEntry_Directory And (entryType & #getFilesType_Folders))
          If MatchRegularExpression(0, DirectoryEntryName(0))
            AddElement(*files())
            *files()=path+"\"+DirectoryEntryName(0)
            Debug *files()
          EndIf
        
        EndIf
      Wend
      FinishDirectory(0)
    EndIf
    FreeRegularExpression(0)
  Else
    Debug RegularExpressionError()  
    
  EndIf
EndProcedure

NewList files.s()
getFilesList(@files(),"C:\windows","^w.*\.exe",#getFilesType_Files|#getFilesType_Folders)


Re: liste de fichiers répondant a une expression régulière

Publié : dim. 04/nov./2012 13:13
par venom
Sympa cette procédure.
Merci Thyphoon. 8)






@++

Re: liste de fichiers répondant a une expression régulière

Publié : dim. 04/nov./2012 14:01
par Thyphoon
venom a écrit :Sympa cette procédure.
Merci Thyphoon. 8)
de rien :mrgreen: