Fórum CopyFile no Delphi não funciona #558794
30/06/2016
0
Galera boa noite!
Sou novo no mundo do delphi e estou com um problema aqui que não consigo resolver, tenho uma aplicação que preciso copiar um arquivo de um diretorio para outro (para atualização).
Estou fazendo o codigo a baixo:
CopyFile(PAnsiChar('C:\Teste\SERVICEDESK.exe'),PAnsiChar('D:\Meus documentos\Projetos\OsAtualizacao\SERVICEDESK.exe'));
porem não funciona...
Já fiz varias pesquisas na internet e todas dizem estar correto o codigo a cima. Estou usando a versão do delphi Seattles, será que tem alguma diferença?
Sou novo no mundo do delphi e estou com um problema aqui que não consigo resolver, tenho uma aplicação que preciso copiar um arquivo de um diretorio para outro (para atualização).
Estou fazendo o codigo a baixo:
CopyFile(PAnsiChar('C:\Teste\SERVICEDESK.exe'),PAnsiChar('D:\Meus documentos\Projetos\OsAtualizacao\SERVICEDESK.exe'));
porem não funciona...
Já fiz varias pesquisas na internet e todas dizem estar correto o codigo a cima. Estou usando a versão do delphi Seattles, será que tem alguma diferença?
Julio Pavesi
Curtir tópico
+ 0
Responder
Posts
01/07/2016
Raimundo Pereira
Fala Julio, Bom dia Brother.
Tive o mesmo problema quando precisei, então resolvi meu problema, criando uma função que me atendeu perfeitamente.
1. Declare em Uses a clausula >> Shellapi
2. Declare a Função >> Function Copy_File(Caminho_Arquivo_Original,Caminho_Arquivo_Destino:string; Modo_Janela:integer):String;
Declare depois de
implementation
{$R *.dfm}
/// Começo da Função
Function Tnome_do_seu_form.Copy_File(Caminho_Arquivo_Original,Caminho_Arquivo_Destino:string; Modo_Janela:integer):String;
var CommandLine:string;
begin
if MOdo_Janela>1 then
begin
MOdo_Janela:=1;
end;
CommandLine:='Copy "'+Caminho_Arquivo_Original+'" "'+Caminho_Arquivo_Destino+'" /Y';
if not FileExists(Caminho_Arquivo_Original) then
begin
Result:=' Arquivo de origem não foi localizado!';
end
else
begin
ShellExecute(0,nil,'cmd.exe',PWideChar('/c ' + CommandLine),nil,MOdo_Janela);
Sleep(2000);
Result:=' Cópia Iniciada';
end;
ShowMessage(Result);
end;
/// Fim da Função
Segue abaixo como Chamar a função
Copy_File('C:\Teste\SERVICEDESK.exe','D:\Meus documentos\Projetos\OsAtualizacao\SERVICEDESK.exer',0);
// O ultimo paramento eu deixo sempre 0, pois não mostrará a tela //do DOS, se colocar qualquer número maior que 0 será mostrada a Tela.
Espero que ajude, se gostou da dica, deixa o positivo
Tive o mesmo problema quando precisei, então resolvi meu problema, criando uma função que me atendeu perfeitamente.
1. Declare em Uses a clausula >> Shellapi
2. Declare a Função >> Function Copy_File(Caminho_Arquivo_Original,Caminho_Arquivo_Destino:string; Modo_Janela:integer):String;
Declare depois de
implementation
{$R *.dfm}
/// Começo da Função
Function Tnome_do_seu_form.Copy_File(Caminho_Arquivo_Original,Caminho_Arquivo_Destino:string; Modo_Janela:integer):String;
var CommandLine:string;
begin
if MOdo_Janela>1 then
begin
MOdo_Janela:=1;
end;
CommandLine:='Copy "'+Caminho_Arquivo_Original+'" "'+Caminho_Arquivo_Destino+'" /Y';
if not FileExists(Caminho_Arquivo_Original) then
begin
Result:=' Arquivo de origem não foi localizado!';
end
else
begin
ShellExecute(0,nil,'cmd.exe',PWideChar('/c ' + CommandLine),nil,MOdo_Janela);
Sleep(2000);
Result:=' Cópia Iniciada';
end;
ShowMessage(Result);
end;
/// Fim da Função
Segue abaixo como Chamar a função
Copy_File('C:\Teste\SERVICEDESK.exe','D:\Meus documentos\Projetos\OsAtualizacao\SERVICEDESK.exer',0);
// O ultimo paramento eu deixo sempre 0, pois não mostrará a tela //do DOS, se colocar qualquer número maior que 0 será mostrada a Tela.
Espero que ajude, se gostou da dica, deixa o positivo
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)