Scopo
La funzione ReadDirectory permette di enumerare tutti i files contenuti in una determinata directory. E' possibile indicare l'attributo che i files devono possedere affinché vengano listati.
Per enumerare tutti i files contenuti in una determinata directory occorre prima chiamare la funzione ReadDirectory indicando il percorso ove cercare i files seguito dal criterio di ricerca. La funzione restituisce subito il nome del primo file trovato. Poi occorre chiamare la funzione senza fornire alcun parametro finché questa non restituisce una stringa vuota.
Sintassi
//
fname := Applicazione.ReadDirectory("Percorso e maschera", "Filtro attributi")
Argomenti
Percorso e maschera | E' un parametro stringa che indica dove e cosa cercare. Contiene il path completo della directory entro cui effettuare la ricerca e l'eventuale pattern di ricerca (per esempio C:\WINDOWS\*.INI) |
Filtro attributi | E' un numero intero che indica quali tipi di files occorre cercare. Possono essere utilizzati i valori contenuti nella lista valori File Attributes per comporre il valore del parametro. |
Valore di ritorno
Se viene fornito il path e/o gli attributi la funzione restituisce una stringa che contiene il nome del primo file trovato. Se, invece, viene chiamata senza parametri restituisce il prossimo file che soddisfa gli ultimi criteri di ricerca impostati.
Esempio di codice
// Inserisce nella tabella IMDB tutti i nomi dei files XML disponibili
// *******************************************************************
public void BookDaXML.EnumeraFilesXML()
{
string FileName = "" //
//
// Svuoto la tabella dei files XML
delete from Books
//
// Recupero l'elenco dei books, in formato XML, presenti nella directory
// BookXML
FileName := ReadDirectory(Path() + "C/BookXML/C*.xml", ??)
while FileName <> ""
{
// Inserisco i dati nella tabella in memoria
insert values into Books
set NomeFile := FileName
set Descrizione := ??
//
// Passo al prossimo file
FileName := ReadDirectory(??, ??)
}
}
- Per poter enumerare tutti i files contenuti in una determinata directory occorre dapprima chiamare la funzione fornendo il percorso seguito dal criterio di ricerca sui nomi (come mostrato nell'esempio di codice). Se la chiamata restituisce EmptyString non è stato trovato alcun file che soddisfa i criteri forniti. Se, invece, la funzione restituisce una stringa non vuota occorre chiamare la funzione senza fornire alcun parametro per ottenere il nome di tutti gli altri files che soddisfano i criteri di ricerca impostati con la prima chiamata. Se la funzione, chiamata senza parametri, restituisce EmptyString vuol dire che la lista dei files che soddisfano i criteri di ricerca è terminata.
- Il parametro Attributi indica quali altri files occorre cercare oltre a quelli non nascosti. Se il parametro non viene fornito vengono elencati tutti i files non nascosti contenuti nella directory di ricerca. Se viene fornito il valore DIRECTORY il sistema elenca, otre ai files, anche le directory eventualmente contenute nella directory di ricerca. Se viene fornito il valore HIDDEN il sistema elenca, oltre ai files visibili, anche quelli nascosti.
-
Se il primo parametro non termina con un separatore di directory (/ o \) il sistema considera i caratteri che seguono l'ultimo separatore di directory come criterio di ricerca. Per esempio se viene eseguita la seguente chiamata:
fname := ReadDirectory(C:\windows\fonts, ??)
il sistema cerca, nella directory c:\windows, tutti i files il cui nome è uguale a fonts. Qualora si voglia verificare l'esistenza di una particolare directory è possibile effettuare la seguente chiamata alla funzione:fname := ReadDirectory(C:\windows\dirname, DIRECTORY)
In questo caso, infatti, il sistema cerca, all'interno della dierctory c:\windows, tutti i files o directory il cui nome è uguale a dirname. Quindi se la directory dirname esiste la funzione restituisce il valore 'dirname'; se invece la directory dirname non esiste la funzione restituisce il valore EmptyString. -
Se il primo parametro termina con un separatore di directory (/ o \) il sistema aggiunge automaticamente la stringa *.* per indicare che si desidera ricercare qualunque file all'interno della directory indicata nel parametro. Per esempio la chiamata:
fname := ReadDirectory(C:\windows\, ??)
permette di elencare tutti i files contenuti all'interno dela directory c:\windows dato che il sistema automaticamente aggiunge al testo c:\windows\ fornito la stringa *.*. Lo stesso risultato si sarebbe ottenuto effettuando la seguente chiamata:fname := ReadDirectory(C:\windows\*.*, ??)
Ultima modifica: 09/05/2022 / Validità: da 6.5.2680