Вопрос по Делфи. Переименование файла.

kazak878



var f:FileText
...
AssignFile(f,'A.txt');
Rename(f,'B.txt');
//AssignFile(f,'B.txt');
CloseFile(f);


Но CloseFile(f) не выполняется (ошибка даже если вставить 3-ю строку
Как правильно закрыть фаиловую переменную?

LAWD

А не модно что ли юзать
Типа MoveFileEx
И с твоей AssignFile
Не иметь весь этот секс?

kazak878

Тама PChar для имен файлов надо, а у меня String

okunek

так дельфи не кастит автоматом эти типы?

LAWD

Ну а функция PChar
Не работает там что ли?
Или типы приводить
Неприятно Вам до боли?

kazak878

Пез приведения - матерится.

kazak878

Что то не пашет, там похеже не только надо преобразовать, а еще что то
(в приведенном фрагменте все работало, но файловая переменная не освобождалась; пути к файлам у меня посложнее)

vijrel7878

в sysutils есть ф-я:
function RenameFile(const OldName, NewName: string): Boolean;

Chupa

> CloseFile(f) не выполняется (ошибка)
йопт, файл открыть нужно, чтобы его можно было закрыть
тут close нафиг не нужен

kazak878

Я думал его Assign "открывает".
То есть CloseFile(f) не надо?

alex-kras

его открывает Reset/Rewrite

kazak878

Спс
И как я ее сам не нашел?

Chupa

не надо

vijrel7878

бывает
кстати, эта ф-я просто вызывает апишную MoveFile

kazak878

Вопрос в догонку:
А как переименовать директорию с вложенными файлами? (одной процедурой)

vijrel7878

мне кажеться, что можно только так:
создать новую с нужным именем, перекинуть туда ф-лы, старую удалить

kazak878

Но это ж через какую жопу!
Оставить комментарий
Имя или ник:
Комментарий: