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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.06.2010, 14:24   #1  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
Delete Directory
Подскажите, создаём папки так WinAPI::createDirectory(fileName);
А как удалить?
Старый 07.06.2010, 14:42   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
WinApi::removeDirectory('C:\\DirTest');
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем

Последний раз редактировалось lev; 07.06.2010 в 14:43. Причина: добавил пример параметра
Старый 07.06.2010, 16:27   #3  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
думала, что для перемещения этот метод, а оказывается что удаляет ... спасибо..
Старый 08.06.2010, 09:06   #4  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
эх, а ведь removeDirectory удаляет только пустой каталог, а как можно удалить каталог содержащий файлы?
Старый 08.06.2010, 09:29   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Предварительно удалив файлы с помощью WinAPI::findFirstFile(), WinAPI::findNextFile(), WinAPI::deleteFile().
Старый 08.06.2010, 10:45   #6  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
X++:
static void Job(Args _args)
{
    FileName         baseFolder = "C:\\Documents and Settings\\Рабочий стол\\14\\";
    str                   fileName;
    dialogButton     dialogButton;
    int                   hand;
    ;
    fileName = strfmt('%1*.*',baseFolder);
    [hand, FileName] = winapi::findFirstFile(fileName);
 
    dialogButton = BOX::yesNo(" В указанном каталоге существуют файлы. Удалить?",DialogButton::Yes);
    if (dialogButton == DialogButton::Yes)
    {
        while (FileName)
        {
            info(FileName);
            if(strlen(FileName)>2)
                WinApi::deleteFile(FileName);
            FileName = winapi::findNextFile(hand);
         }
    }
    //  WinApi::removeDirectory(baseFolder);
}
Делаю вот-так. перечисляет все файлы в папке, но не удаляет.( Кстати сперва перечисляет файл "." и "..", а потом уже содержащиеся в каталоге

Последний раз редактировалось fialka; 08.06.2010 в 10:47.
Старый 08.06.2010, 10:47   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
А что возвращает deleteFile()? Если что-то отличное от нуля - то это код ошибки.
Старый 08.06.2010, 10:52   #8  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
X++:
 deleteFileError = WinApi::deleteFile(FileName);
 info(strfmt("%1, %2",FileName,deleteFileError));
., 0
.., 0
Word1.doc, 2
Excel1.xls, 2
получается вот что... то есть те файлы которых нет "." выдаёт 0, а в тех которые существуют ошибка 2.
Старый 08.06.2010, 10:55   #9  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
всё. решила проблему.
нужно было писать WinApi::deleteFile(baseFolder +FileName);
Старый 08.06.2010, 10:57   #10  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
На будущее - http://semper.fi.tripod.com/welt/index.htm
Чтобы получить по номеру текст ошибки.
За это сообщение автора поблагодарили: fialka (1).
Старый 08.06.2010, 11:01   #11  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
спасибо.
Старый 08.06.2010, 11:09   #12  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Для файловых операций можно еще использовать объект Scripting.FileSystemObject. Это COM-обертка над API-интерфейсом. Поищите по форуму. Примеры приводились. Например здесь

WinApi::shellExecute("DEL"
За это сообщение автора поблагодарили: fialka (1).
Старый 08.06.2010, 11:55   #13  
fialka is offline
fialka
Участник
 
347 / 16 (1) ++
Регистрация: 05.10.2006
Адрес: Екатеринбург
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Для файловых операций можно еще использовать объект Scripting.FileSystemObject. Это COM-обертка над API-интерфейсом. Поищите по форуму. Примеры приводились. Например здесь

WinApi::shellExecute("DEL"
X++:
    COM                comFSO = new COM("Scripting.FileSystemObject");
    Com                 comFolder;
    FileFolder_RU   fileFolder_RU = "C:\\Documents and Settings\\Рабочий стол\\2";
    ;
    if (comFSO.FolderExists(fileFolder_RU))
    {
        comFolder = comFSO.GetFolder(fileFolder_RU);
        comFolder.delete(true);
    }
}
попробовала так, в джобе нормально удаляет. всё быстро и без запинки..
а применила в таблице - ошибку выдало Сбой запроса на разрешение типа "InteropPermission".
получилось только после того как метод на клиенте запустила.
Так что огромное спасибо. всё получилось

Последний раз редактировалось fialka; 08.06.2010 в 12:06.
Теги
удаление файла, файл

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
C# and AX Development: How to delete AOT nodes by code (UtilIdElements solution) Blog bot DAX Blogs 0 28.06.2009 03:06
gatesasbait: Table caching and record delete()/update()/next Blog bot DAX Blogs 3 24.04.2008 22:55
dax-lessons: Active directory in Axapta Blog bot DAX Blogs 0 27.08.2007 23:00
jerry-dynamics: How can you make sure that the end user can not delete a record in one table if there are related records in another table? Blog bot DAX Blogs 0 16.06.2007 11:20
Исследование - Как работают разные типы Delete Actions. sguryev DAX: База знаний и проекты 1 10.05.2002 15:46
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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