rebotea Postado Agosto 13, 2010 Denunciar Share Postado Agosto 13, 2010 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') Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Agosto 13, 2010 Denunciar Share Postado Agosto 13, 2010 Isso aqui tá que nem quarto de adolescente... uma bagunça... ops sou adolescente kkkkkTem como dá uma explicada melhor nisso ae??? e se possível adicionar a tag Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rebotea Postado Agosto 13, 2010 Autor Denunciar Share Postado Agosto 13, 2010 (editado) Ok explinda melhorpreciso copiar um diretorio com subpastas de um lado para o outro e renomear a mesma..diretorio origem (Dirlocal + 'Relatorios' ) diretorio destino (Dirdestino + 'Relatorios_1' ) Obrigado Editado Agosto 13, 2010 por rebotea Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Agosto 13, 2010 Denunciar Share Postado Agosto 13, 2010 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rebotea Postado Agosto 13, 2010 Autor Denunciar Share Postado Agosto 13, 2010 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 copiarFillChar(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 pastaFo.fFlags := 0;if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) thenShowMessage('Erro a copiar ficheiro imagens') RenameDir('diretorio origem ', 'diretorio destino'); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Agosto 13, 2010 Denunciar Share Postado Agosto 13, 2010 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 ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rebotea Postado Agosto 13, 2010 Autor Denunciar Share Postado Agosto 13, 2010 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 assimeu 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 .jpgRenameDir('diretorio origem ', 'diretorio destino');existe alguma forma mais espedita?Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Agosto 14, 2010 Denunciar Share Postado Agosto 14, 2010 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rebotea Postado Agosto 14, 2010 Autor Denunciar Share Postado Agosto 14, 2010 (editado) 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 copiarFillChar(Fo, sizeof(Fo), #0);Fo.Wnd := Application.Handle;Fo.wFunc := FO_COPY;Fo.pFrom := @Buffer;Fo.pTo := PChar( dirFile1); //copio para a pasta Teste_1Fo.fFlags := 0;if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) thenShowMessage('Erro a copiar ficheiro imagens')end; Editado Agosto 14, 2010 por rebotea Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rebotea
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
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.