Здравствуйте.
Нужна помощь.
Как можно осуществить копирование файла, но с каждым разом с новым именем. Анализировала программа каждое имя и присваивала новое т.е. test1, test2, test3 и т.д.
Код:
1
2
3
4
5
6
7
procedureTForm1.BitBtn1Click(Sender: TObject);
begin
ifCopyFile('C:\test\test.xls', 'D:\test\test1.xls', true) then
ext := ExtractFileExt(OldName); // извлекаем расширение файла
new_name := Copy(OldName, 1, Length(OldName) - Length(ext)); // отделяем имя файла от расширения
i := 1;
Result := new_name + IntToStr(i) + ext; // формируем имя нового файла
whileFileExists(Result) do// если файл с таким именем существует, то формируем новое
begin
Inc(i);
Result := new_name + IntToStr(i) + ext;
end;
end;
В Вашем случае использовать как-то так:
Код:
1
2
3
4
5
6
7
8
9
procedureTForm1.BitBtn1Click(Sender: TObject);
begin
...
file_for_copy := 'C:\test\test.xls';
ifCopyFile(file_for_copy, MakeNewName(file_for_copy), true) then
ShowMessage('файл скопирован.')
else
ShowMessage('ошибка копирования.');
end;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Последний раз редактировалось dr. F.I.N., 27.01.2020 в 12:57.
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
i:=1;
while FileExists((Format('C:\test\копия\test%d.xls',[i]))) do inc(i);
CopyFile('С:\temp\test.xls', PAnsiChar(Format('C:\test\копия\test%d.xls',[i])), true);
end;