zl程序教程

您现在的位置是:首页 >  后端

当前栏目

[代码]创建.ZIP压缩文件[CL_ABAP_ZIP]详解编程语言

zip编程语言代码 详解 创建 ABAP 压缩文件 CL
2023-06-13 09:11:51 时间

SAP提供了一个类CL_ABAP_ZIP来创建.zip扩展名的压缩文件。

2017-03-01_16-06-41


img >

代码:

先将文件通过cl_gui_frontend_services= gui_upload以BIN的文件类型上载,然后通过cl_abap_zip中的方法add()

save()压缩,最后下载到本地。

REPORT ztest_zip. 

TYPES: BEGIN OF bin_file, 

 name TYPE string, 

 size TYPE i, 

 data TYPE solix_tab, 

 END OF bin_file . 

DATA: lv_filename TYPE string, 

 wa_bindata TYPE bin_file, 

 it_bindata TYPE STANDARD TABLE OF bin_file, 

 oref_zip TYPE REF TO cl_abap_zip, 

 lv_zip_xstring TYPE xstring, 

 lv_xstring TYPE xstring, 

 lv_path TYPE string, 

 it_filetab TYPE filetable, 

 lv_retcode TYPE i, 

 v_usr TYPE i, 

 v_zip_size TYPE i, 

 it_zip_bin_data TYPE STANDARD TABLE OF raw255, 

 v_dest_filepath TYPE string. 

DATA lv_filesize TYPE i. 

DATA wa_filetab LIKE LINE OF it_filetab. 

"create object 

CREATE OBJECT oref_zip. 

"upload 

cl_gui_frontend_services= file_open_dialog( 

 EXPORTING 

 window_title = Select files that you want to ZIP 

 multiselection = X 

 CHANGING 

 file_table = it_filetab 

 rc = lv_retcode 

 user_action = v_usr ). 

LOOP AT it_filetab INTO wa_filetab. 

 lv_filename = wa_filetab-filename. 

 cl_gui_frontend_services= gui_upload( 

 EXPORTING 

 filename = lv_filename 

 filetype = BIN 

 IMPORTING 

 filelength = wa_bindata-size 

 CHANGING 

 data_tab = wa_bindata-data ). 

 CALL FUNCTION SO_SPLIT_FILE_AND_PATH 

 EXPORTING 

 full_name = lv_filename 

 IMPORTING 

 stripped_name = wa_bindata-name 

 EXCEPTIONS 

 x_error = 1 

 OTHERS = 2. 

 APPEND wa_bindata TO it_bindata. 

ENDLOOP. 


window_title = SELECT THE LOCATION TO SAVE THE FILE file_filter = (*.ZIP)|*.ZIP| CHANGING filename = lv_filename path = lv_path fullpath = v_dest_filepath ).

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19223.html

cjava