Показать сообщение отдельно
Старый 09.03.2016, 17:39   #16  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
В AX 4.0 / 2009 / 2012 есть возможность использовать .NET сборки, таким образом использовать классы/методы из стандартных сборок.NET, либо сборок разработанных самостоятельно/сторонними разработчиками.

Для добавления референса для сборки в AX нужно: а) открыть АОТ б) правый клик на узле References / Добавить ссылку, в открывшемся диалоге выбрать сборку .NET. Если сборка отсутствует, то нужно по кнопку Обзор в диалоге добавления сборки открыть диалог добавления сборки, найти нужный DLL и добавить его.

Конкретно по вашему примеру с классом System.IO.Compression.ZipFile AX 4.0 под рукой нет, но на AX 2012 слету взлетело:
  • Загуглил статью на msdn со справкой по данному классу: https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
  • Добавил ссылку на сборку c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.IO.Compression.FileSystem.dll
  • Подготовил файлы для примера - в папке c:\temp создал 2 директории: start, extract и в папку start перенес несколько файлов
  • Написал джоб. Переписал пример использования класса ZipFile с msdn на X++ :
    Цитата:
    static void NetZipFileDemo(Args _args)
    {
    System.String startPath = @"c:\temp\start";
    System.String zipPath = @"c:\temp\result.zip";
    System.String extractPath = @"c:\temp\extract";
    ;

    System.IO.Compression.ZipFile::CreateFromDirectory(startPath, zipPath);

    System.IO.Compression.ZipFile::ExtractToDirectory(zipPath, extractPath);
    }
  • Запустил джоб и проверил результат: 1) был создан архив c:\temp\result.zip, 2) содержимое этого архива распаковано в папку c:\temp\extract.
За это сообщение автора поблагодарили: mallard (2).