Esegue un ricerca di files usando caratteri Jolly, all'interno di una cartella spedificata.
La scansione può avvenire anche in forma ricorsiva.
Sintassi
EH_FILEDIR * fileDirCreate( UTF8 * pszWildCard,
CHAR * pszDateYMD,
EN_FD_PARAM dwParam,
BOOL (*funcNotify)(void *lpFolder,S_FILEINFOW *psFileInfo));
Parametri
- pszWildCard
[in] indica il percorso dove ricercare i file, attraverso i caratteri wildcard es. file_dir("c:\\cache\\*.jpg","20080102",FDE_SUBFOLDERSCAN,NULL);
- pszDateYMD
[in] Data limite: se indicata verrano inseriti i file fino a questa data compresa. Data in formato 8 cifre AAAAMMGG.
Indicare NULL se non si vuole il controllo sulla data.
- dwParam
[in] Comportamento della funzione, indicando una o più macro tra cui:
FDE_SUBFOLDER | Analizza anche le sotto cartelle |
FDE_DMIMODE | Ritorna l'array nel formato DMI - struttura S_FILEINFO |
FDE_FULLPATH | Ritorna per ogni file il percorso completo (valorizza pszFullPath partendo dalla root del disco) |
FDE_RELAPATH | Ritorna per ogni file il percorso relativo (valorizza pszFullPath partendo dalla directory richiesta) |
FDE_ADDFOLDER | Aggiunge le sole directory/cartelle, nell'array: di default non viene fatto. |
FDE_ADDHIDDEN | Aggiunge i files nascosti |
FDE_ADDSYSTEM | Aggiunge i files di sistema |
FDE_DELEMPTYFOLDER | Cancella le cartelle che si svuotano (solo in delete) |
FDE_NO_GETINFO | Non effettua getInfo aggiuntivo (troppo lento su richieste in rete e/o linux) |
FDE_ONLYCOUNTER | Aggiorna i soli contatori dello spazio occupato |
- funcNotify
[in] se diversa da NULL indica la funzione di controllo; la funzione deve ritornare TRUE se il file o la directory sono da saltare, altrimenti se si vuole che vengano utilizzati deve ritornare FALSE.
Valori di ritorno
Ritorna un puntatore ad una struttura tipo
EH_FILEDIR che contiene il risultato della scansione.
La struttura deve essere liberata con
fileDirDestroy().
Esempio
EH_FILEDIR * psDir;
CHAR szDayLimit[20];
CHAR szServ[400];
INT a;
S_FILEINFO sFile;
strcpy(szDayLimit,dateCalc(dateToday(),-10));
sprintf(szServ,"%s" OS_DIR_SLASH "*",psDump->pszDirDest);
psDir=fileDirCreate(szServ,dateDtoY(szDayLimit),FDE_DMIMODE|FDE_FULLPATH|FDE_ADDFOLDER,NULL);
for (a=0;a<(INT) psDir->tCount;a++) {
DMIRead(&psDir->dmiFiles,a,&sFile);
printf("%s" CRLF,sFile.pszFullPath);
}
fileDirDestroy(psDir);