![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как бороться с таким идиотизмом???
Genie™ © (2005-05-28 18:24:00)Пытаюсь переименовать папку с файлами следующим образом:
RenameFile(CurrentDir + '\Documents\Шаблоны\' + ComboBox.Items[ComboBox.ItemIndex], CurrentDir + '\Documents\Шаблоны\' + Edit.Text);,
где CurrentDir- путь приложения, определённый при FormCreateфункцией GetCurrentDir
ComboBox.Items[ComboBox.ItemIndex]- старое имя папки
Edit.Text- новое имя
Переименование не осуществляется. НО! Если либо удалить файлы из неё, либо переименовать папку "Шаблоны" в любую другую, то всё работает!!!
Defunct (2005-05-28 19:40:00) [1]Перед переименованием обязательно надо удалить существующий файл с таким же именем.
Procedure TDBSaver.Execute;
Begin
try
if FileExists( Main_Telecontrol_Components_Container ) then
begin
if FileExists( Backup_Telecontrol_Components_Container ) then
DeleteFile( Backup_Telecontrol_Components_Container);
RenameFile( Main_Telecontrol_Components_Container,
Backup_Telecontrol_Components_Container );
end;
If Assigned(Container) Then
Container.CreateDCFile( Main_Telecontrol_Components_Container );
except
on E:Exception do ShowException('Execute', ClassName, E);
end
end;
VMcL (2005-05-28 19:18:00) [2]>> Genie™ (28.05.05 18:24)
if not RenameFile(...) then
RaiseLastOSError;
Cobalt (2005-05-28 19:10:00) [3]Суть проблемы не раскрыта.
А такие процедуры для удобства отладки рекомендую вызывать
RenameFile(s1,s2);