|
|
#1 |
|
Участник
|
Удаление файла
Добрый день!
написал такой джобик: X++: io file;
int err;
str fileName = "D:\\File.txt";
;
file = new TextIo(fileName, 'w', 1251);
file.write('a');
err = WinAPI::deleteFile(fileName);Может кто подскажет, как удалить только что созданный файл? |
|
|
|
|
#2 |
|
Участник
|
![]() То есть Вы открыли файл на запись, что-то туда записали, а потом хотите, чтобы он нормально удалился? попробуйте перез deleteFile() дописать строку X++: file = null; |
|
|
|
|
#3 |
|
Участник
|
X++: ...
file = new TextIo(fileName, 'w', 1251);
file.write('a');
file = null;
err = WinAPI::deleteFile(fileName); |
|
|
|
|
#4 |
|
Участник
|
Не знаю что такое TextIo, у меня такого класса нет, но у была подобная проблема с классом AsciiIo. Проблема в том, что чтобы закрыть файл, нужно вызвать метод finalize() класса Io, но он почему-то объявлен как protected. Я сделал наследника от AsciiIo и перекрыл в нем метод finalize вот так:
X++: public void finalize() { super(); } |
|
|
|
|
#5 |
|
Участник
|
Интересно, мне обычно хватало
X++: file = null; |
|
|
|
|
#6 |
|
Участник
|
Возможно в большинстве случаев этого достаточно. У меня была проблема в том, что файл создавался пакетным классом и иногда в файл записывались не все строки (отсутствовало несколько строк в конце файла). Подробностей уже не помню, давно было. Принудительный вызов finalize решил проблему.
|
|
|
|
|
#7 |
|
Участник
|
спасибо за ответы!
file = null помогло
|
|
|