AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.12.2003, 11:25   #7  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Желательно после CreateFIle и работы с файлами закрывать их хандлеры, то есть использовать
WinAPI::closeHandle(handle);
Кроме того, если запись в файлы осуществляется при помощи классов-наследников IO, то они тоже любят оставлять за собой файлы открытыми. Причем явно вызвать метод finalize() не получается. Зато в хелпе читаем:
Цитата:
Close the file and, if data was written, flush the file buffers to disk. The object is normally finalized by leaving the scope so finalize is normally not called directly.
Исходя из чего, пытаемся смоделировать leaving the scope, то есть кусок кода, отвечающего за запись в файлы, вынести в отдельный метод, дабы при выходе из него и происходил желанный нами finalize(). Таким образом и достигаем желаемого результата:
PHP код:
void write2file(str _FileNamestr _Data)
{
    
asciiIO File = new asciiIO(_FileName'W');
    
File.write(_Data);
}
..................

int deleteAllFiles()
{
    
int Handle=0i;
    
str FileName;
    
str Path 'D:\\\\Temp';
    
dialogButton Db;
    
container Files = ['1.txt''2.txt''ABC.txt'];

    for (
i=1i<=conlen(Files); i++)
    {
        
FileName conpeek(Files,i);
        
this.write2file(Path "\\\" + FileName, 'test string');
    }
// во время приостановки Х++ кода можно убедиться в присутствии файлов
    pause; 
    [Handle, FileName] = WinApi::findFirstFile(Path + '\\\\*.txt');
    if (Handle == -1) return -1; // not found

    Db = BOX::yesNo("
В указанном каталоге уже есть TXT файлы!!! Удалить их?",DialogButton::Yes);
    if (Db == DialogButton::No) return 0;

    while (FileName)
    {
        WinApi::deleteFile(Path + "
\\\\" + FileName);
        FileName = WinApi::findNextFile(Handle);
    }
    WinApi::findClose(handle);
    return 1;

PS: Если я опять что-то не так понял, опишите задачу поподробнее...
Теги
открытие файла, поиск файлов, удаление файла

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Печать самих файлов PDF Владимир Максимов DAX: База знаний и проекты 9 17.08.2017 10:34
Axapta WinAPI::SewWindow... кто знает как? UNRW DAX: Программирование 2 26.09.2008 15:28
Dynamics AX Geek: Finding files with WinAPI Blog bot DAX Blogs 0 28.10.2006 16:40
WinAPI. Ссылка (POINT) третьего уровня вложенности Владимир Максимов DAX: Программирование 2 06.02.2006 16:28
WinAPI::getLastError() DreamCreator DAX: Программирование 4 20.06.2005 10:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:08.