如何使用 ABAP 把多个文件打成一个 zip包 -利用 ABAP 标准工具类 cl_abap_zip

简介: 如何使用 ABAP 把多个文件打成一个 zip包 -利用 ABAP 标准工具类 cl_abap_zip

利用 ABAP 标准工具类 cl_abap_zip

*&---------------------------------------------------------------------*
*& Report  ZBM_TST_ZIP
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  zbm_tst_zip.
DATA: lo_zip TYPE REF TO cl_abap_zip.
CREATE OBJECT lo_zip.
DATA: l_file_path           TYPE string.
DATA: lt_xml_rawtable       TYPE dcxmllines.
DATA: lv_xstring            TYPE xstring.
DATA: lv_upload_xstring     TYPE xstring.
DATA: lv_upload_string      TYPE string.
TRY.
    CALL METHOD cl_salv_test_data=>select_file
      IMPORTING
        filename = l_file_path.
  CATCH cx_root.
ENDTRY.
CALL METHOD cl_gui_frontend_services=>gui_upload
  EXPORTING
    filename = l_file_path
    filetype = 'BIN'
  CHANGING
    data_tab = lt_xml_rawtable
  EXCEPTIONS
    OTHERS   = 1.
LOOP AT lt_xml_rawtable INTO lv_xstring.
  CONCATENATE lv_upload_xstring lv_xstring INTO lv_upload_xstring IN BYTE MODE.
ENDLOOP.
DATA: lo_conv_in TYPE REF TO cl_abap_conv_in_ce.
TRY.
    lo_conv_in = cl_abap_conv_in_ce=>create( input = lv_upload_xstring ).
    lo_conv_in->read( IMPORTING data = lv_upload_string ).
  CATCH cx_root .
ENDTRY.
DATA: l_filename TYPE string VALUE 'T005'.
lo_zip->add( name = l_filename content = lv_upload_xstring ).
DATA: l_file TYPE xstring.
l_file = lo_zip->save( ).
WRITE: l_file.
WRITE: lv_upload_string.
*
DATA:  lt_xml_stream      TYPE etxml_xline_tabtype.
DATA:  lv_length          TYPE i.
TRY.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  EXPORTING
    buffer        = l_file
  IMPORTING
    output_length = lv_length
  TABLES
    binary_tab    = lt_xml_stream.
CALL METHOD cl_gui_frontend_services=>gui_download
  EXPORTING
    bin_filesize = lv_length
    filetype     = 'BIN'
    filename     = 'C:\Documents and Settings\Desktop\A1F 2 A1F\T002.zip'
  CHANGING
    data_tab     = lt_xml_stream
  EXCEPTIONS
    OTHERS       = 0.
CATCH cx_root.
  ENDTRY.
WRITE:/ 'END'.


目录
相关文章
|
7月前
使用 SAP ABAP 封装的 Office Integration class 访问本地 Excel 文件
使用 SAP ABAP 封装的 Office Integration class 访问本地 Excel 文件
47 0
|
7月前
|
XML 测试技术 数据格式
如何使用 ABAP 代码解析 XML 文件试读版
如何使用 ABAP 代码解析 XML 文件试读版
60 0
如何使用 ABAP 代码解析 XML 文件试读版
|
18小时前
|
XML 存储 安全
基于 ABAP OLE 和 abap2xlsx 两种技术方案对 Excel 文件进行读写的优缺点比较
基于 ABAP OLE 和 abap2xlsx 两种技术方案对 Excel 文件进行读写的优缺点比较
5 0
|
18小时前
|
Android开发 Windows 缓存
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
11 0
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
|
7月前
如何使用 ABAP 把多个文件打成一个 zip包 -利用 ABAP 标准工具类 cl_abap_zip
如何使用 ABAP 把多个文件打成一个 zip包 -利用 ABAP 标准工具类 cl_abap_zip
76 0
|
6月前
|
Unix Linux C#
使用 ABAP + OLE 消费 Windows DLL 文件里的代码和服务
使用 ABAP + OLE 消费 Windows DLL 文件里的代码和服务
28 0
|
7月前
|
BI
如何把 SAP ABAP 字符串变量的值下载成本地文件,以及文件路径 F4 Value Help 的实现方式试读版
如何把 SAP ABAP 字符串变量的值下载成本地文件,以及文件路径 F4 Value Help 的实现方式试读版
51 0
|
7月前
|
BI 数据库 数据安全/隐私保护
如何用 ABAP 生成带有水印(Watermark)的 PDF 文件试读版
如何用 ABAP 生成带有水印(Watermark)的 PDF 文件试读版
58 0
|
7月前
|
存储 SQL 数据库
将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版
将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版
49 0
|
7月前
SAP 系统里的中文数据,用 ABAP 导出成 Excel 文件时遇到乱码的分析和解决办法试读版
SAP 系统里的中文数据,用 ABAP 导出成 Excel 文件时遇到乱码的分析和解决办法试读版
82 0