
09/12/2021 (version 3.5)
13/03/2021 (version 3.4)
02/01/2021 (version 3.3)
18/12/2020 (version 3.2)
17/12/2020 (version 3.1)
IncludeDirItem pour inclure les éléments des répertoires dans les résultats de la recherche.IncludeHiddenFiles et IncludeSystemFiles à SearchHiddenFiles et SearchSystemFiles .TDSFile en TDSResultItem .17/12/2020 (version 3.0)
ResultList à l'aide d'un nouvel objet TDSFILE personnalisé. Si vous souhaitez obtenir la liste des chaînes, vous pouvez utiliser une nouvelle méthode GetResultStrings .IncludeHiddenFiles ET IncludeSystemFiles les propriétés de fichiers.22/11/2020 (version 2.0)
Inclusions et propriétés Exclusions .31/10/2020 (version 1.3)
27/10/2020 (version 1.2)
26/10/2020 (version 1.1)
05/03/2020
Lorsque vous utilisez Delphi et en travaillant avec des fichiers et des répertoires, vous devez éventuellement rechercher et obtenir une liste de fichiers dans un répertoire, ou même rechercher des fichiers dans des sous-répertoires.
Cela pourrait être un peu difficile en utilisant les vieilles fonctions FindFirst et FindNext . Maintenant, nous avons de nouvelles méthodes surcharger TDirectory.GetFiles , disponibles sur System.IOUtils Unit.
Mais, même en utilisant des méthodes GetFiles, si vous avez besoin de paramètres avancés comme inclure des sous-répertoires, vous devrez itérer tous les répertoires. De plus, si vous souhaitez spécifier un masque qui inclut une partie de la chaîne de chemin, vous devrez travailler avec des chaînes dans votre code chaque fois que vous avez besoin de cette ressource.
J'ai donc décidé de créer ce composant pour devenir un moyen facile de rechercher des fichiers.
Prend en charge Delphi Xe3..Delphi 11
Remplissez simplement les propriétés souhaitées et Seek la méthode d'appel.
Ensuite, vous pouvez lire la propriété publique ResultList pour obtenir tous les fichiers trouvés. Cette liste contient des objets TDSResultItem .
Dir: String = chemin vers la recherche
Inclusions: TStrings = si une ligne est spécifiée, le composant ne recherchera que les masques spécifiés ici, selon la syntaxe du masque décrite ci-dessous.
Exclusions: TStrings = juste après Inclusions vérifiez, si le fichier correspond aux masques Exclusions (selon la syntaxe du masque décrit ci-dessous), il sera exclu de la recherche.
Syntaxe des masques:
*.txt
myapp.exe
*xyz*.doc
myfile?.rtf
*sub_path*
first_path*
path1path2file.avi
<F>*abc*
Si vous utilisez la chaîne
<F>avec un masque, il ne sera considéré que la partie du nom de fichier du chemin. Ceci est utile lorsque le masque peut être confondu avec la partie du répertoire.
Exemple: Supposons qu'il y ait un chemin C: MyApp. À l'intérieur de ce dossier, il y a un autre dossier C: MyApp Sous-dossier. À l'intérieur de ce dernier dossier, il y a un fichier appelé my_app_file.txt.
Ainsi, si nous devons exclure tous les fichiers qui contient le texte "App", nous pouvons spécifier sur la propriété Masks: *app* . Mais dans ce cas, le dossier sera également exclu, car il correspond à l' *app* , et en supposant que nous voulons inclure ce répertoire car il existe un autre fichier avec d'autres noms différents. Dans ce cas, nous pouvons utiliser <F>*app* . Cela ne considérera que la pièce de nom de fichier lorsque le composant vérifie les masques.
Ces propriétés dépendent de la propriété Usemask activée.
Sorted: Boolean = si activé, il récupérera les répertoires et les fichiers triés par ordre alphabétique. (par défaut faux)
SubDir: Boolean = si activé, il analysera les fichiers dans tous les sous-répertoires dans le chemin de recherche. (par défaut true)
UseMask: Boolean = si activé, il tiendra compte Inclusions et des propriétés Exclusions . S'il est désactivé, il récupérera toujours tous les fichiers. (par défaut activé).
IncludeHiddenFiles = si activé, il inclura des fichiers et des dossiers cachés (fonctionne uniquement sur la plate-forme Windows).
IncludeSystemFiles = si activé, il inclura les fichiers et les dossiers système (fonctionne uniquement sur la plate-forme Windows).
Lorsque vous exécutez une recherche de répertoire, le résultat sera récupéré dans la propriété ResultList , qui contient des objets TDSResultItem . Vous pouvez itérer cette liste pour obtenir des propriétés de résultats.
BaseDir = Directory Chemin utilisé lorsque la recherche a démarré.
RelativeDir = Directory Chemin sans préfixe de répertoire de base.
Name = seule partie du nom de fichier.
Size = taille de fichier en octets.
Attributes = File Attributs (identiques à la propriété TSearchRec.Attr).
Timestamp = File Dernière date d'écriture Date et heure.
IsDir = IF L'élément est un répertoire (n'apparaît que si la propriété IncludeDirItem est vraie lorsque la recherche est exécutée).
Si vous souhaitez obtenir uniquement la liste des chaînes de chemin de fichier, vous pouvez utiliser la méthode GetResultStrings :
procedure GetResultStrings (S: TStrings; Kind: TDSResultKind); Où la propriété Kind représente:
// Returns bytes in megabytes string format, with two decimal places.
function BytesToMB (X: Int64): string;
// Returns file size in bytes.
function GetFileSize ( const aFileName: string): Int64;
// Returns if an attribute enumerator contains a specific attribute (use System.SysUtils consts: faReadOnly, faHidden, faDirectory...)
function ContainsAttribute (AttributesEnum, Attribute : Integer): Boolean;