
12/09/2021 (versión 3.5)
13/03/2021 (versión 3.4)
02/01/2021 (versión 3.3)
18/12/2020 (versión 3.2)
17/12/2020 (versión 3.1)
IncludeDirItem para incluir elementos de directorios en los resultados de búsqueda.IncludeHiddenFiles e IncludeSystemFiles para SearchHiddenFiles y SearchSystemFiles .TDSFile a TDSResultItem .17/12/2020 (versión 3.0)
ResultList utilizando el nuevo objeto TDSFile personalizado. Si desea obtener la lista de Strings de resultados, puede usar el nuevo método GetResultStrings .IncludeHiddenFiles e IncludeSystemFiles PROPIEDADES.22/11/2020 (versión 2.0)
Inclusions y propiedades Exclusions .31/10/2020 (versión 1.3)
27/10/2020 (versión 1.2)
26/10/2020 (versión 1.1)
05/03/2020
Al usar Delphi y trabajar con archivos y directorios, eventualmente debe buscar y obtener una lista de archivos en un directorio, o incluso buscar archivos en subdirectorios.
Esto podría ser un poco difícil usando las funciones antiguas FindFirst y FindNext . Ahora tenemos nuevos métodos sobrecarga TDirectory.GetFiles , disponible en la unidad System.IOUtils .
Pero, incluso utilizando métodos GetFiles, si necesita algunos parámetros avanzados como los subdirectorios de incluido, deberá iterar todos los directorios. Además, si desea especificar una máscara que incluya alguna parte de la cadena de ruta, deberá trabajar con cadenas en su código cada vez que necesite este recurso.
Entonces, decidí construir este componente para convertirme en una manera fácil de buscar archivos.
Admite Delphi Xe3..Delphi 11
Simplemente llene las propiedades deseadas y Seek del método de llamadas.
Luego puede leer la ResultList de la Propiedad Pública para obtener todos los archivos encontrados. Esta lista contiene objetos TDSResultItem .
Dir: String = ruta para buscar
Inclusions: TStrings = si se especifica alguna línea, el componente buscará solo las máscaras especificadas aquí, de acuerdo con la sintaxis de la máscara que se describe a continuación.
Exclusions: TStrings = justo después de la verificación Inclusions , si el archivo coincide con las máscaras de Exclusions (de acuerdo con la sintaxis de la máscara que se describe a continuación), entonces se excluirá de la búsqueda.
Sintaxis de máscaras:
*.txt
myapp.exe
*xyz*.doc
myfile?.rtf
*sub_path*
first_path*
path1path2file.avi
<F>*abc*
Si usa la cadena
<F>con una máscara, se considerará solo la parte del nombre del archivo de la ruta. Esto es útil cuando la máscara podría confundirse con la parte del directorio.
Ejemplo: supongamos que hay una ruta C: myapp. Dentro de esta carpeta hay otra carpeta C: MyApp subpolder. Dentro de esta última carpeta, hay un archivo llamado my_app_file.txt.
Entonces, si necesitamos excluir todos los archivos que contengan el texto "Aplicación", podemos especificar en la propiedad Masks: *app* . Pero en este caso, la carpeta también se excluirá, porque coincide con la expresión *app* y supone que queremos incluir este directorio porque hay otros archivos con otros nombres diferentes. En este caso, podemos usar <F>*app* . Esto considerará solo la parte del nombre del archivo cuando el componente verifique las máscaras.
Estas propiedades dependen de la propiedad USEMASK habilitada.
Sorted: Boolean = si está habilitado, recuperará directorios y archivos ordenados alfabéticamente. (falso predeterminado)
SubDir: Boolean = si está habilitado, escaneará archivos en todos los subdirectorios dentro de la ruta de búsqueda. (Verdadero predeterminado)
UseMask: Boolean = si está habilitado, considerará Inclusions y las propiedades Exclusions . Si está deshabilitado, recuperará siempre todos los archivos. (habilitado por defecto).
IncludeHiddenFiles = si está habilitado, incluirá archivos y carpetas ocultas (solo funciona en la plataforma Windows).
IncludeSystemFiles = si está habilitado, incluirá archivos y carpetas del sistema (solo funciona en la plataforma Windows).
Cuando ejecuta una búsqueda de directorio, el resultado se recuperará en la propiedad ResultList , que contiene objetos TDSResultItem . Puede iterar esta lista para obtener propiedades de resultados.
BaseDir = ruta de directorio utilizada cuando se inicia la búsqueda.
RelativeDir = ruta de directorio sin prefijo de directorio base.
Name = solo Part de nombre de archivo.
Size = tamaño de archivo en bytes.
Attributes = Atributos de archivo (lo mismo que la propiedad tsearchRec.Attr).
Timestamp = Archivo Última fecha y hora de escritura.
IsDir = si el elemento es un directorio (solo aparece si la propiedad IncludeDirItem es verdadera cuando se ejecuta la búsqueda).
Si desea obtener solo la lista de cadenas de ruta de archivo, puede usar el método GetResultStrings :
procedure GetResultStrings (S: TStrings; Kind: TDSResultKind); Donde la propiedad Kind representa:
// 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;