Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Mover Arquivo


itibere

Question

Como faço para mover um arquivo de uma pasta para outra , tem uma função especifica para isso?

eu to ta fazendo assim;

Copio da pasta de origem para a de destino com o comando "copy()";

Depois deleto da pasta de origem com o comando unlink();

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Só Para deixar registrado e se puder ser util para alguém,

Como eu vou executar essa tarefa de mover arquivos em varios lugares, e a função

rename("srt","srt"); apesar de ser prática, não tem um tratamento de erro legal, eu criei uma função para mover arquivos.

Ela ta bem simples,(depois vou melhorar ), mas funciona legal, e tem alguns tratamentos de erro que eu incorporei.

Fica aberto para quiser usar, e principalmente para melhorar.

//FUNÇÃO PARA MOVER ARQUIVOS;
//By Itiberê E. S. Mattos
function moveArq($strOrigem,$strDestino){
    $msgErr="";        //RECEBE AS MENSSAGENS DA FUNÇÃO;
    $respErr=0;        //QUARDA SE TEM OU NÃO ERROS. INICIALIZA SEM ERROS.
    //PRIMERIO COPIA O ARQUIVO DA ORIGEM PARA O DESTINO;
    //FERIFICA SE A ORIGEM E O DESTINO SÃO IGUAIS
    if($strOrigem==$strDestino){
        $msgErr="O local de Destino e igual ao local de origem. A operação foi abortada";
        $respErr=1;        //ATULIZAR VARIAVEL PARA ERRO.
    }else{
        $cpArq=copy($strOrigem,$strDestino);
    }
    //FAZ O TRATAMENTO CASO A OPERAÇÃO TENHA FALHADO;
    if(!$cpArq){
        $msgErr="Ocorreu um erro na tentativa de Copia do Arquivo. A operação foi Abortada.";
        $respErr=1;        //ATULIZAR VARIAVEL PARA ERRO.
    }
    //VEIFICA SE TEM ERRO ANTES DE TENTAR EXCLUIR O ARQUIVO
    if($respErr!=1){
    //SE NÃO TIVER ERRO EXCLUI O ARQUIVO
        $dlArq=unlink($strOrigem);
    }
    //AGORA VERIFICA SE FOI EXLUIDO O ARQUIVO;
    if($respErr==1){
    }else{
        if(!$dlArq){
            $msgErr="Ocorreu um erro na tentativa de Exclusão do Arquivo. Apenas uma Copia do Arquivo foi criada no diretório de destino.";
            $respErr=1;        //ATULIZAR VARIAVEL PARA ERRO.
        }
    }
    //AQUI VERIFICA O CONTEUDO DA VARIAVEL DE ERRO;
    if($respErr==1){
        return $msgErr;        //SE TIVER ERRO RETORNA A MENSSAGEM COM O ERRO
    }else{
        return true;        //SE NÃO TIVER RETORNA TRUE.
    }
}

Link to comment
Share on other sites

  • 0

Estou fazendo um nova pergunta neste tópico, por que é sobre o mesmo tema.

no rename(antivo,novo) a pasta de destino tem que ser diferente da de origem ou pode ser a mesna pasta?

Link to comment
Share on other sites

  • 0

não existe mesmo nenhum controle no comando rename... você pode até fazer:

rename($origem,$origem)

que ele vai aceitar sem problema algum...

Mas seria meio estranho...

Sobre o código acima, daria para simplificar com rename tb... Dá pra fazer assim:

if ($origem == $destino) {
  echo "O que você ta tentando fazer?????";
}
elseif (rename($origem,$destino)) {
  echo "Suuuuuuuucessoooooooo!!!";
}
else {
  echo "Deu erro!!!";
}

Claro, dá pra melhorar, mas coloquei só simplificado...

Abs...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...