Ir para conteúdo
Fórum Script Brasil
  • 0

mudar nome de pasta a copiar de lado para outro


rebotea

Pergunta

dirFile := (localAplicação N registo) exemplo pasta "12"

dirFile1 := (destino) Aqui precisava que passa-se a ser pasta "17"

FillChar(Buffer, sizeof(Buffer), #0);

p := @buffer;

StrECopy(p, PChar(dirFile)); //nome da pasta a copiar

FillChar(Fo, sizeof(Fo), #0);

Fo.Wnd := Application.Handle;

Fo.wFunc := FO_COPY;

Fo.pFrom := @Buffer;

Fo.pTo := PChar(dirFile1); //copia para aqui mas queria mudar o nome da pasta

Fo.fFlags := 0;

if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then

ShowMessage('Erro a copiar ficheiro imagens')

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim:

dirFile1 := 'C:\Teste';
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
StrECopy(p, PChar(dirFile)); //nome da pasta a copiar
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Application.Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
if not DirectoryExists(dirFile1 + '_1') then // checo se a pasta Teste_1 existe
ForceDirectories(dirFile1 + '_1'); // Se não existe crio ela
Fo.pTo := PChar(dirFile1 + '_1'); //copio para a pasta Teste_1
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Erro a copiar ficheiro imagens')

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

não seria mais facil fazer já que estou a copiar a pasta de c:\clientes\1.................9 para \\172.16.8.104\clentes\1.................9 aqui a numeração vem de autonumeração edit1:

diretorio origem (Dirlocal + 'Relatorios' )

diretorio destino (Dirdestino + 'Relatorios_1' )

RenameDir('diretorio destino', 'diretorio origem');

dirFile1 := (destino) Aqui precisava que passa-se a ser pasta "17"

FillChar(Buffer, sizeof(Buffer), #0);

p := @buffer;

StrECopy(p, PChar(dirFile)); //nome da pasta a copiar

FillChar(Fo, sizeof(Fo), #0);

Fo.Wnd := Application.Handle;

Fo.wFunc := FO_COPY;

Fo.pFrom := @Buffer;

Fo.pTo := PChar(dirFile1); //copia para aqui mas queria mudar o nome da pasta

Fo.fFlags := 0;

if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then

ShowMessage('Erro a copiar ficheiro imagens')

RenameDir('diretorio origem ', 'diretorio destino');

Link para o comentário
Compartilhar em outros sites

  • 0
Deixa eu ver se entendi... você tem uma pasta C:\Teste, e no outro computador é C:\Teste_1, você gostaria de alterar o nome da pasta de Teste_1 para Teste ???

Bem não e bem assim

eu quando transfiro a pasta C:\Teste para outro local ela tem que chegar la como C:\Teste_1 logo a unica maneira que vi que poderia fazer isso seria:

Mudo o nome na Origem de C:\Teste para C:\Teste_1 // este numero e incrementado busco ele no destino (edit1.text),

RenameDir('diretorio destino', 'diretorio origem');

em seguida copia a pasta em seguida voltamos a numeração original já que dentro de cada pasta existem +- 100 .jpg

RenameDir('diretorio origem ', 'diretorio destino');

existe alguma forma mais espedita?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Não, você pode fazer como eu te disse... checa se existe a pasta no destino, se não existir você cria, daí você pega e copia!

dirFile1 := 'C:\Teste';
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
StrECopy(p, PChar(dirFile)); //nome da pasta a copiar
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Application.Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
if not DirectoryExists(dirFile1 + '_1') then // checo se a pasta Teste_1 existe
ForceDirectories(dirFile1 + '_1'); // Se não existe crio ela
Fo.pTo := PChar(dirFile1 + '_1'); //copio para a pasta Teste_1
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Erro a copiar ficheiro imagens')

Faça o teste, creio que vai ser o que você precisa!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

assim funciona como desejo existe sempre a necessidade de eliminar o directorio no destino ou existe outra forma?

dirFile := ('c:\Teste');

dirFile1 :=('d:\'+'1');

DelTree ('d:\'+'1');

FillChar(Buffer, sizeof(Buffer), #0);

p := @buffer;

StrECopy(p, PChar(dirFile)); //nome da pasta a copiar

FillChar(Fo, sizeof(Fo), #0);

Fo.Wnd := Application.Handle;

Fo.wFunc := FO_COPY;

Fo.pFrom := @Buffer;

Fo.pTo := PChar( dirFile1); //copio para a pasta Teste_1

Fo.fFlags := 0;

if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then

ShowMessage('Erro a copiar ficheiro imagens')

end;

Editado por rebotea
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...