Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Помогите с заменой файла (Delphi)

Ответить
Настройки темы
Delphi - Помогите с заменой файла (Delphi)

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть часть кода, в целом, работает все как нужно, но есть одно но
есть файл с названием "Став", по нажатию на кнопку в программе он перемещается из определённой папки в папку "рапорта и документы",
если в ней уже имеется с названием "Став", то перемещаемый файл переименовывается в Став(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;​ ​ }

Отправлено: 19:00, 19-08-2021

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Помогите с заменой файла (Delphi)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Как скопировать файл во все профили с заменой файла без запросов? nikhop Скриптовые языки администрирования Windows 9 03-07-2019 18:42
VBS/WSH/JS - Подпись в Outlook VBS с заменой переменных из внешнего файла. serraxer Скриптовые языки администрирования Windows 3 08-06-2017 11:41
Помогите определиться с заменой. Parlan Выбор отдельных компонентов компьютера и конфигурации в целом 14 20-12-2015 20:15
CMD/BAT - [решено] Копирование файла в зависимости от имени компьютера с заменой имеющегося. vsesam Скриптовые языки администрирования Windows 12 21-02-2013 16:30
CMD/BAT - Копирование файла с заменой Meloslavsky Скриптовые языки администрирования Windows 3 31-01-2013 11:39




 
Переход