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

È stato utile?

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);

?>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top