Tengo una aplicacion que cria unas carpetas baseado en una regla. Que pasa es que quando me a copiar unos archivos para esas carpetas(son 3 archivos. PDF, TIF y TXT). Quando me voy a copiar los archivos TXT, me lo aparece esses archivos: Thumbs.db. Como la creacion de las carpetas, los nombres de ellas son parte del nombre del archivo, me lo da error, pues los archivos Thumbs.db pertenence a la regla de construcion del nombre. Abajo mi codigo:
Código:
procedure TForm1.DevolveArquivo(Origem, Destino: String);
var
SR: TSearchRec;
DDir,SDir,Dir: String;
I: Integer;
nm_dir,
novo_dir,
str_token,
novo_cont,
nm_arq: String;
begin
SDir := IncludeTrailingPathDelimiter(Origem);
DDir := IncludeTrailingPathDelimiter(Destino);
Dir := IncludeTrailingPathDelimiter(Destino);
I := FindFirst(SDir + '*.*', faAnyFile-faDirectory, SR);
while I = 0 do
begin
nm_dir := fCopia.CriaDirEdicao(SR.Name);// Aqui dá o erro
if novo_dir = fCopia.CriaDirEdicao(SR.Name) then
inc(cont)
else
cont := 1;
novo_cont := fCopia.StrZero(cont,4);
str_token := fCopia.PegaPosicao(SR.Name,3);
nm_arq := StringReplace(SR.Name,str_token,novo_cont,[rfReplaceAll]);
ForceDirectories(Dir + IncludeTrailingPathDelimiter(fCopia.CriaDirEdicao(nm_arq)));
DDir := DDir + IncludeTrailingPathDelimiter(fCopia.CriaDirEdicao(nm_arq));
ForceDirectories(DDir + IncludeTrailingPathDelimiter(novo_cont));
DDir := DDir + IncludeTrailingPathDelimiter(novo_cont);
MoveFile(PChar(SDir+SR.Name),PChar(DDir+nm_arq));
DDir := IncludeTrailingPathDelimiter(Destino);
novo_dir := fCopia.CriaDirEdicao(nm_arq);
I := FindNext(SR);
end;
FindClose(SR);
I := FindFirst(SDir + '*', faDirectory, SR);
while I =0 do
begin
if (SR.Attr = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') then
DevolveArquivo(SDir + SR.Name, DDir);
I := FindNext(SR);
end;
end;