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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.02.2011, 13:42   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Первый способ архивирования понять не смог

А вот с %SystemRoot%\System32\Iexpress.exe разобрался. Создаёт cab-архивы. Проверял на Windows XP, 2003 и 2008. Работает одинаково. Но есть недостатки.

Имя результирующего файла архива можно указывать только в формате 8.3. То есть надо где-то брать временное 8-символьное имя для файла, а после создания архива его переименовывать.
Путь к файлу SED в параметрах командной строки нужно указывать в так называемом укороченном виде (с символами ~). То есть либо изначально пытаться сохранять этот файл в месте с уже "коротким" путём, либо каждый раз преобразовывать путь к файлу к короткому виду. На стороне клиента можно использовать метод WinAPI::getShortPathName(), а вот на стороне сервера даже не знаю что использовать.

Разобраться бы с первым способом, может у него нет таких недостатков.
__________________
Дмитрий
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 08.02.2011, 13:57   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Damn Посмотреть сообщение
Первый способ архивирования понять не смог
...
Разобраться бы с первым способом, может у него нет таких недостатков.
Суть в следующем (я честно говоря не силен в языке Powershell). В приведенной Вами ссылке как распаковать файл - создается некий скрипт (файл *.ps1) на языке Powershell, который впоследствии запускается из АХ. Т.е. распаковкой занимается Powershell.
В приведенных мною примерах - производится упаковка / распаковка и прочие действия на языке Powershell (т.е. есть пример кода, которые могут заставить Powershell заняться архивированием).
Этот код нужно оформить в файл *.ps1 и вызвать Powershell точно также (но с другим файлом *.ps1) как указано в примере по приведенной Вами ссылке. И все.

Конечно я привел не совсем готовый пример. Но в любом случае - при более детальном изучении языка Powershell (коим я не владею) - думаю - что Вы сможете достичь своей цели.
__________________
Возможно сделать все. Вопрос времени
Старый 08.02.2011, 14:05   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Damn Посмотреть сообщение
На стороне клиента можно использовать метод WinAPI::getShortPathName(), а вот на стороне сервера даже не знаю что использовать.
А на стороне сервера нельзя эту же функцию использовать? (понимаю, что ее нет в классе WinAPIServer, но ее ж можно и создать)
__________________
Возможно сделать все. Вопрос времени
Старый 08.02.2011, 16:41   #4  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
А на стороне сервера нельзя эту же функцию использовать? (понимаю, что ее нет в классе WinAPIServer, но ее ж можно и создать)
Когда функция вызывается на стороне сервера (Windows 2008 Server x64), то выдаётся ошибка "Функция "GetShortPathNameW" в библиотеке DLL "KERNEL32" привела к возникновению исключения."
Погуглил в интернете по слову GetShortPathName и нашёл что не только у меня такая ошибка возникает, решения пока не нашёл.
__________________
Дмитрий
Теги
zip, архивирование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AX 2009 Setup fails to install IIS Components on Windows Server 2008 R2 Blog bot DAX Blogs 0 12.01.2010 04:44
Dynamics AX Sustained Engineering: Microsoft Dynamics AX 4.0 and AX 2009 are compatible with Microsoft Windows 7 and Microsoft Windows Server 2008 R2 Blog bot DAX Blogs 0 22.09.2009 04:06
emeadaxsupport: Group policy setting "System Objects: Default owner for objects created by members of the administrators group" is missing on Windows Server 2008 Blog bot DAX Blogs 2 28.08.2009 02:14
jinx: Microsoft Dynamics AX 2009, Windows Server 2008 und SQL Server 2008 Blog bot DAX auf Deutsch 0 12.10.2008 20:10
Client Axapta 3.0 SP4 и Linux. Как запустить? Daiver DAX: Администрирование 10 28.06.2007 15:59
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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