Visualizzazione dei risultati da 1 a 9 su 9

Discussione: cancellare cartelle

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11

    cancellare cartelle

    Ciao.

    Abbiamo una webcam che ogni giorno crea una cartella chiamandola ymd (es. quella di oggi si chiama 20090506).
    Grazie al vostro aiuto sono riuscire a fare in modo di caricare sul sito solo l'ultima immagine caricata nella cartella con la data odierna.
    Ora avrei necessità di inserite uno script che mi vada a cancellare tutte le cartelle con data diversa da quella odierna.

    Garzie in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    manuale di php alla mano (php.net)

    Per la rimozione
    http://it2.php.net/manual/en/function.rmdir.php

    Per la lettura del contenuto di una directory
    http://it2.php.net/manual/en/function.readdir.php

    In pratica si tratta di ciclare sui file contenuti nella "top" directory (readdir), ovvero -almeno credo- sulle directory contenenti le immagini, verificare se il nome è congrunte alla data odierna ed in caso contrario acciaccarla (rmdir)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11
    Per me è un tantino complicato mettere insieme il tutto!


    Purtroppo sono un vero niubbo...

    Saresti così gentile da indicarmi praticamente come fare?


  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Codice PHP:
    <?php
      $curr 
    date("Ymd"time());
      
    $base_path "Percorso alla cartella contenente le cartelle con le immagini";
      
    $handle opendir($base_path);
      
      if (
    $handle) {
          while (
    false !== ($file readdir($handle))) {
              if (
    $file != "." && $file != ".." && $file != $curr && is_dir($base_path."/".$file)) {
                  echo(
    "Da cancellare: ".$file."
    \n"
    );              
              }          
          }
          
    closedir($handle);
      }
    ?>
    Verifica l'output, prima di andare a cancellare qualcosa di utile Quando l'elenco delle cartelle è corretto invece dell'echo, dentro l'if più interno, metterai rmdir
    Codice PHP:
    rmdir($base_path."/".$file); 
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11
    Mi dice che la cartella non è vuota

    Warning: rmdir(hotel/20090506) [function.rmdir]: Directory not empty in E:\inetpub\vhosts\hotelmontecallini.com\httpdocs\w ebcam\webcam17.php on line 42

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Già. Allora, prova invece che la semplice rmdir, ad utilizzare questa

    http://aidanlister.com/2004/04/recur...folder-in-php/

    aggiungi la funzione rmdirr che trovi al link ed usa quella al posto di rmdir
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11
    Scusa la mia "ciucaggine" ma sto sbagliando qualcosa!
    Adesso il messaggio di errore non comapre più, ma la cartella non viene cancellata.

    Questo è quello che ho inserito:


    Codice PHP:
    <?php 
      $curr 
    date("Ymd"time()); 
      
    $base_path "hotel"
      
    $handle opendir($base_path); 
       
      if (
    $handle) { 
          while (
    false !== ($file readdir($handle))) { 
              if (
    $file != "." && $file != ".." && $file != $curr && is_dir($base_path."/".$file)) { 
                  function 
    rmdirr($dirname


    // Sanity check 
        
    if (!file_exists($dirname)) { 
            
    return 
    false
        

     
     
        
    // Simple delete for a file 
        
    if (is_file($dirname) || is_link($dirname)) { 
            
    return 
    unlink($dirname); 
        

     
     
        
    // Loop through the folder 
        
    $dir dir($dirname); 
        
    while (
    false !== $entry $dir->read()) { 
            
    // Skip pointers 
            
    if ($entry == '.' || $entry == '..') { 
                
    continue; 
            

     
     
            
    // Recurse 
            
    rmdirr($dirname DIRECTORY_SEPARATOR $entry); 
        

     
     
        
    // Clean up 
        
    $dir->close(); 
        
    return 
    rmdir($dirname); 
    }               
              }           
          } 
          
    closedir($handle); 
      } 
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Codice PHP:
    <?php
    /**
     * Delete a file, or a folder and its contents (recursive algorithm)
     *
     * @author      Aidan Lister <aidan@php.net>
     * @version     1.0.3
     * @link        [url]http://aidanlister.com/repos/v/function.rmdirr.php[/url]
     * @param       string   $dirname    Directory to delete
     * @return      bool     Returns TRUE on success, FALSE on failure
     */
    function rmdirr($dirname)
    {
        
    // Sanity check
        
    if (!file_exists($dirname)) {
            return 
    false;
        }

        
    // Simple delete for a file
        
    if (is_file($dirname) || is_link($dirname)) {
            return 
    unlink($dirname);
        }

        
    // Loop through the folder
        
    $dir dir($dirname);
        while (
    false !== $entry $dir->read()) {
            
    // Skip pointers
            
    if ($entry == '.' || $entry == '..') {
                continue;
            }

            
    // Recurse
            
    rmdirr($dirname DIRECTORY_SEPARATOR $entry);
        }

        
    // Clean up
        
    $dir->close();
        return 
    rmdir($dirname);
    }
     



      
    $curr date("Ymd"time()); 
      
    $base_path "hotel"
      
    $handle opendir($base_path); 
      
      if (
    $handle) {
          while (
    false !== ($file readdir($handle))) {
              if (
    $file != "." && $file != ".." && $file != $curr && is_dir($base_path."/".$file)) {
                  
    rmdirr($base_path."/".$file);              
              }          
          }
          
    closedir($handle);
      }
    ?>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    11
    Super!


    Funziona!!!



    Grazie 1000!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.