Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Giuliano1981

Copiar Pasta usando PHP

Recommended Posts

Galera fiz um cata cata na net e fiz esse codigo abaixo no qual o mesmo cria um diretorio no servidor e copia os arquivos de outro diretoria para o novo diretorio criado.

 

<?

$pasta_atual="teste2"; //pasta qeu será copiada

if ($pasta_destino !== ""){

$pasta_destino = $_POST['pasta'];

mkdir($pasta_destino,0777);//cria a pasta

chmod($pasta_destino,0777);//muda a perma

}

if(!preg_match("/\\/$/", $pasta_atual)) {

$pasta_atual .= '/';

}

 

$aberta=opendir($pasta_atual);//abre a pasta para ver os arquivos

while($res=readdir($aberta)){//vendo os arquivos da pasta

if($res == '.' || $res == '..') {

continue;

}

if(is_dir($pasta_atual)) {

copy($pasta_atual."/".$res,$pasta_destino."/".$res); //copiando os arquivos

}

else if(is_file($pasta_atual.$res)) {

copy($pasta_atual."/".$res,$pasta_destino."/".$res); //copiando os arquivos

}

}

 

closedir($aberta);

// copy($pasta_atual."/".$pasta_destino."/".$res);

echo " Diretorio criado com sucesso!";

 

?>

 

 

Esse Codigo acima funciona direitinho.

 

Porém eu gostaria da ajuda de vcs do forum para fazer com que esse codigo compie subpastas e arquivos que estão no diretorio principal pois o mesm só compia os arquivos e não as subpastas.

 

Ajuda ai galera !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera usei as dicas que me passaram e consegui fazer com que o programa crie e copie arquivos da pasta principal para uma nova criada via form, mais quanto as subpastas ele até compia elas mais não os arquivos das subpastas. Eu pretendia fazer com o o programa copie todas as pastas subpastas e arquivos das mesma pois a intenção é pegar um site já criado e duplica-lo em outro pasta. segue o codigo tá funcionando mais ainda não me atende.

 

 

 

<?php

 

$source = "teste2"; //pasta qeu será copiada

if ($dest !== ""){

$dest = $_POST['pasta'];

mkdir($dest, 0777); // Cria a Pasta

chmod($dest, 0777); // Muda a permissão

 

function dircpy($basePath, $source, $dest, $overwrite = false){

if(!is_dir($basePath . $dest))

mkdir($basePath . $dest);

}

 

if($handle = opendir($basePath . $source)){

while(false !== ($file = readdir($handle))){

if($file != '.' && $file != '..'){

$path = $source . '/' . $file;

if(is_file($basePath . $path)){

if(!is_file($basePath . $dest . '/' . $file) || $overwrite)

if(!@copy($basePath . $path, $basePath . $dest . '/' . $file)){

echo '<font color="red">O arquivo ('.$path.')não pode ser copiado, provavelmente um problema de permissões.</font>';

}

}

else if(is_dir($basePath . $path)){

if(!is_dir($basePath . $dest . '/' . $file))

mkdir($basePath . $dest . '/' . $file);

chmod($basePath . $dest . '/' . $file, 0777);

dircpy($basePath, $path, $dest . '/' . $file, $overwrite);

 

}

}

}

 

closedir($handle);

 

}

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.