2012-03-17 16 views

risposta

29

è possibile utilizzare il "file di aiuto" in CodeIgniter.

http://codeigniter.com/user_guide/helpers/file_helper.html

e in questo modo:

$this->load->helper("file"); 
delete_files($path); 

tardo Edit:delete_files metodo utilizza un percorso per spazzare via tutti i suoi contenuti tramite unlink() e lo stesso si può fare all'interno di CI. In questo modo:

unlink($path); 

un percorso valido.

+4

'delete_files ($ path)' richiede un percorso di directory e non un percorso di file. Non sono sicuro se questo farebbe il lavoro. – Aniket

+1

Sì hai ragione. L'ho guardato ora e la funzione 'delete_files' utilizza un ricorsivo' unlink() 'per eliminare i file in una cartella specificata. La risposta di questa domanda dovrebbe essere aggiornata. –

+0

Ben fatto :) Ora sembra a posto. – Aniket

8

http://php.net/manual/en/function.unlink.php

E 'il modo migliore per capire. Leggilo!

$path_to_file = '/project/folder/file_to_delete'; 
if(unlink($path_to_file)) { 
    echo 'deleted successfully'; 
} 
else { 
    echo 'errors occured; 
} 
+0

dà un errore; scollega (localhost/project/files_to_delete/f1.php) [function.unlink]: Nessun file o directory – Jetoox

+1

se ti dà un errore, dovresti silenziarlo come questo '@unlink ($ path_to_file)' Ma per essere sicuro il file esiste, usa [funzione is_file] (http://php.net/manual/en/function.is-file.php) prima di eliminarlo. – machineaddict

2
$file = "test.txt"; 
if (!unlink($file)) 
    { 
    echo ("Error deleting $file"); 
    } 
else 
    { 
    echo ("Deleted $file"); 
    } 
0

Questo codice può anche gestire cartelle non vuote: basta usarlo in un helper.

if (!function_exists('deleteDirectory')) { 
    function deleteDirectory($dir) { 
    if (!file_exists($dir)) return true; 
    if (!is_dir($dir) || is_link($dir)) return unlink($dir); 
     foreach (scandir($dir) as $item) { 
      if ($item == '.' || $item == '..') continue; 
      if (!deleteDirectory($dir . "/" . $item)) { 
       chmod($dir . "/" . $item, 0777); 
       if (!deleteDirectory($dir . "/" . $item)) return false; 
      }; 
     } 
     return rmdir($dir); 
    } 
} 
6

per eliminare l'uso di file

unlink($file_name); 

o eliminare l'uso directory

rmdir($dir); 
3

Prova questa, questo funziona per me:

unlink("./path/to/folder/file_name_do_delete"); 

per esempio: ho messo il mio file all'interno della cartella uploads che è outsi de la cartella dell'applicazione e il mio nome file è 123.jpg. Quindi dovrebbe essere così:

unlink("./uploads/123.jpg"); 
Problemi correlati