Come posso escludere cartelle e file nascosti da readdir?
-
12-11-2019 - |
Domanda
È possibile escludere file e cartelle nascosti da readdir()
funzione? Ho una directory in cui ci sono molte cartelle e alcune cartelle nascoste. Voglio leggere tutte le cartelle tranne quelle nascoste.
Grazie per qualsiasi aiuto.
KCSSM
Soluzione
Se vuoi solo escludere i file a partire da un punto ".", Puoi fare qualcosa del genere:
$files = readdir('/path/to/folder');
$files = array_filter($files, create_function('$a','return ($a[0]!=".");'));
Questo restituirà solo file che non iniziano con Dot "."
Su Windows, i file nascosti funzionano in modo diverso, non so come scoprirli.
Altri suggerimenti
Usa gli iteratori SPL: Directoryiterator + Filteroteratore.
Puoi escludere file e cartelle che iniziano ". utilizzando il seguente codice
$ignoreList = array('cgi-bin', '.', '..', '._');
if ($directory = opendir(APPPATH . 'controllers/user')) {
while (false !== ($filename = readdir($directory))) {
if (!in_array($filename, $ignoreList) and substr($filename, 0, 1) != '.') {
echo $filename."<br>";
}
}
}
Puoi anche usare Scandir con preg_grep per nascondere tutti i file e le cartelle che iniziano con A ".". Si prega di fare riferimento al codice di seguito,
$dir = '/Users/Umesh/Sites/';
$files = preg_grep('/^([^.])/', scandir($dir));
print_r($files);
?>