Movendo arquivo
Ai galera, tenho uma rotina que le arquivo txt
esta perfeita ou quase.
Quando finalizo o arquivo com a função
CloseFile
Eu quero que este arquivo seja movido para uma pasta (moveFile(pchar(´C:\Retorno´+nomeArquivo) PChar(´C:\lidos\´+NomeArquivo))
A funcao que estou utilizando ela só funcionar se eu nao fize a leitura (abrir o arquivo). Sei que se o arquivo estiver aberto ele nao move mas estou finalizando com a função CloseFile. o Que devo Fazer para liber o Arquivo para se mover
esta perfeita ou quase.
Quando finalizo o arquivo com a função
CloseFile
Eu quero que este arquivo seja movido para uma pasta (moveFile(pchar(´C:\Retorno´+nomeArquivo) PChar(´C:\lidos\´+NomeArquivo))
A funcao que estou utilizando ela só funcionar se eu nao fize a leitura (abrir o arquivo). Sei que se o arquivo estiver aberto ele nao move mas estou finalizando com a função CloseFile. o Que devo Fazer para liber o Arquivo para se mover
Silvio
Curtidas 0
Respostas
Carnette
02/09/2003
Experimente esta rotina
Copia ou move arquivos usando a API do Windows
Copia ou move arquivos usando a API do Windows
function ProcessArquivo(const Origem, Destino : string; Operacao, Modo:Integer) : Boolean;
// Requer a unit ShellApi na clausula uses da unit
Const
Aborted : Boolean = False;
var
shfo : TSHFileOpStruct;
begin
FillChar(shfo,SizeOf(shfo),$0);
with shfo do
begin
if Operacao > 2 then
begin
operacao := 2;
end;
if Modo > 5 then
begin
modo := 1;
end;
case operacao of
1: wFunc := FO_MOVE;
2: wFunc := FO_COPY;
end;
pFrom := Pchar(Origem);
pTo := Pchar(Destino);
case Modo of
1: fFlags := FOF_SILENT;
2: fFlags := FOF_ALLOWUNDO or FOF_FILESONLY;
3: fFlags := FOF_RENAMEONCOLLISION;
4: fFlags := FOF_NOCONFIRMATION;
5: fFlags := FOF_SIMPLEPROGRESS;
end;
end;
Result := (SHFileOperation(shfo)= 0) and (not Aborted);
end;
GOSTEI 0