Domanda

Non ho idea di come fare e hanno bisogno del vostro aiuto!

Ho una serie di nomi di file chiamato $ bundle. (File_one.jpg, file_two.pdf, file_three.etc) e ho il nome della cartella memorizzata in $ cartella. (My_directory)

Ora vorrebbe spostare tutti i file memorizzati in $ fascio per spostare nella cartella directory $.

Come posso fare?

    //print count($bundle); //(file_one.jpg, file_two.pdf, file_three.jpg)
    $folder = $folder = PATH . '/' . my_directory;
 foreach ($bundle as $value) {

  //rename(PATH.'/'.$value, $folder . '/' . $value);

 }

solo quindi non è confondere: PATH solo memorizza il im file-path locale utilizzando per il mio progetto. nel mio caso è solo la cartella sto lavorando in modo che sia "file".

non ho idea di quale metodo devo usare per questo e come potrei risolvere questo!

grazie per il vostro aiuto!

È stato utile?

Soluzione

Il codice da Lei dovrebbe lavorare con lievi modifiche:

$folder = PATH . '/' . 'my_directory'; // enclose my_directory in quotes.
foreach ($bundle as $value) {
        $old = PATH.'/'.$value, $folder;
        $new = $folder . '/' . $value;
        if(rename($old,$new) !== false) {
                // renamed $old to $new
        }else{
                // rename failed.
        }
}

Altri suggerimenti

$folder = PATH . '/' . $folder;
foreach ($bundle as $value) {
        $old = PATH.'/'.$value;
        $new = $folder . '/' . $value;
        if(rename($old,$new) !== false) {
                // renamed $old to $new
        }else{
                // rename failed.
        }
}

Non testato, ma dovrebbe funzionare:

function bulkMove($src, $dest) {
    foreach(new GlobIterator($src) as $fileObject) {
        if($fileObject->isFile()) {
            rename(
                $fileObject->getPathname(),
                rtrim($dest, '\\/') . DIRECTORY_SEPARATOR . $fileObject->getBasename()
            );
        }
    }
}
bulkMove('/path/to/folder/*', '/path/to/new/folder');

potrebbe aggiungere alcuni controlli per vedere se la cartella di destinazione è scrivibile. Se non avete bisogno di corrispondenza jolly, cambiare il GlobIterator a DirectoryIterator. Che sarebbe anche eliminare la necessità di PHP5.3

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