![]() |
Помогите с заменой файла (Delphi)
Есть часть кода, в целом, работает все как нужно, но есть одно но
есть файл с названием "Став", по нажатию на кнопку в программе он перемещается из определённой папки в папку "рапорта и документы", если в ней уже имеется с названием "Став", то перемещаемый файл переименовывается в Став(1) Проблема заключается в том, что перемещаемый файл не только переименовываться и копируется, но и заменяет файл с названием "Став". Получается два одинаковых файла - Став и Став(1). Мне необходимо, чтобы файл, который уже есть в папке, не заменялся Filelistbox1.Directory := 'D:\Reporter\Рапорта'; Filelistbox1.Mask := '*.pdf'; begin if DirectoryExists('C:\Users\Dej-adm\Desktop\Мои файлы\Прочее\Рапорта и документы') then else ForceDirectories('C:\Users\Dej-adm\Desktop\Мои Файлы\Прочее\Рапорта и документы'); Dir2 := 'C:\Users\Dej-adm\Desktop\Мои файлы\Прочее\Рапорта и документы\' ; for i := 0 to FileListBox1.Items.Count - 1 do begin if FileExists(FileListBox1.Items.Strings[i]) then begin NewFile := Dir2 + '\' + ExtractFileName(FileListBox1.Items.Strings[i]) ; Counter := 1; while FileExists(NewFile) do begin NewFile := dir2 + '\' + ExtractFileName(FileListBox1.Items.Strings[i]); NewFile := ChangeFileExt(NewFile, '') + '('+ IntToStr(Counter)+')' + ExtractFileExt(NewFile) ; inc(Counter); end; CopyFile(PChar(FileListBox1.Items.Strings[i]), PChar (NewFile), false) ; end; это я так пробовал { begin r := FindFirst('D:\Reporter\Рапорта\*.pdf', faAnyFile, sr); while r = 0 do begin DeleteFile('D:\Reporter\Рапорта\' + sr.Name); r := FindNext(sr); end; end; end; end; } |
Время: 23:43. |
Время: 23:43.
© OSzone.net 2001-