Foros del Web » Programando para Internet » PHP »

Php copiando directorios

Estas en el tema de Php copiando directorios en el foro de PHP en Foros del Web. Bueno ya tengo algun tiempo intentando copiar todo un directorio pero no he podido encontrar la solucion con php puro, lo hice pero no es ...
  #1 (permalink)  
Antiguo 28/03/2012, 10:25
 
Fecha de Ingreso: marzo-2011
Mensajes: 120
Antigüedad: 13 años, 1 mes
Puntos: 3
Php copiando directorios

Bueno ya tengo algun tiempo intentando copiar todo un directorio pero no he podido encontrar la solucion con php puro, lo hice pero no es lo mas eficiente, ya que lo hice fue hacer un .bat para q php lo ejecutara y este .bat copiaba el fichero completo en el escritorio con Xcopy PERO solo funciona si lo ejecuto en mi equipo y la idea q quiero es montarlo en internet no en un servidor local este es mi archivo.bat
Código:
@echo off
MKDIR "C:\Users\prog\Desktop\Info"
xcopy http://localhost/CpVela/Info/*.* "C:\Users\prog\Desktop\Info" /O/S
msg *Carpeta Info Copiada
pause
por si a alguien le interesa saber del .bat y para ejecutarlo con php fue sencillo tambien

Código PHP:
$cmd='adios.bat';
exec($cmd); 
ahora mi pregunta es si alguien me puede hechar una manito para hacerlo con php puro o ya q con el .bay solo lo hace para mi pc pq no puedo colocar q copie desde el destino del servidor o algun directorio relativo a el... en resumen quiero hacer q una carpeta completa se copie en desktop alguien sabra?
  #2 (permalink)  
Antiguo 28/03/2012, 10:30
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Php copiando directorios

lo más probable es que los hosting te bloqueen este tipo de operaciones (o que el OS no soporte xcopy), de todas formas lo puedes hacer con PHP implementando recursión

otro punto importante es que el directorio de destino tenga permisos de escritura
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 28/03/2012, 10:36
 
Fecha de Ingreso: marzo-2011
Mensajes: 120
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Php copiando directorios

Hmmmm, bueno no tenia pensado hacerlo recursivamente, mas sin embargo lo hice fue un script para intentar leer la cantidad de archivos q contengan las carpetas copiar crear la estructura del directorio y luego leer el contenido de cada carpeta he ir copiando archivo por archivo -.- q me parece de lo mas tedioso, el caso es q no pude hacerlo intente hacerlo con el siguiente codigo

/
Código PHP:
Ver original
  1. /Creado estructura de ficheros
  2. //echo move_uploaded_file('C:/Users/Public/Desktop/Nuevolugar','C:/Users/Public/Desktop/Nuevolugar/n');
  3. /* mkdir('C:/Users/Public/Desktop/Info',0777,true);
  4. mkdir('C:/Users/Public/Desktop/Info/XML',0777,true);
  5. mkdir('C:/Users/Public/Desktop/Info/Fotos',0777,true); */
  6. //chroot("C:/AppServ/www/CpVela");
  7. /* chdir('C:/Appserv/www/CpVela');
  8. echo getcwd()."\n";
  9. if(is_dir('/Info')){
  10.     $dir = scandir('C:/Appserv/www/CpVelaInfo');
  11.     print_r($dir);
  12. }else{
  13.     echo "No es DIR";
  14.     }
  #4 (permalink)  
Antiguo 28/03/2012, 11:42
 
Fecha de Ingreso: marzo-2011
Mensajes: 120
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Php copiando directorios

Listo tema Solucionado, pongo aqui como hacerlo...

primero la funcion para copiar un directorio completo

Código PHP:
function full_copy$source$target ) {
    if ( 
is_dir$source ) ) {
        @
mkdir$target );
        
$d dir$source );
        while ( 
FALSE !== ( $entry $d->read() ) ) {
            if ( 
$entry == '.' || $entry == '..' ) {
                continue;
            }
            
$Entry $source '/' $entry
            if ( 
is_dir$Entry ) ) {
                
full_copy$Entry$target '/' $entry );
                continue;
            }
            
copy$Entry$target '/' $entry );
        }
 
        
$d->close();
    }else {
        
copy$source$target );
    }

Ahora el uso de ella...
Parametros
$source : se Refiere a el directorio que deseamos copiar
$target: Punto de destino.

la raiz es tu servidor ver getcwd(); esta funcion devuelve el directorio raiz asi sabras como moverte

Etiquetas: directorios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:03.