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