create zip folder with cl_abap_zip
3453 단어 create
REPORT ztest.
DATA: gv_file_length TYPE i,
gv_filehexcontent TYPE xstring,
gv_zipfilehex TYPE xstring,
gt_filebincontent TYPE solix_tab,
gt_zipfilebin TYPE solix_tab,
gv_zipfilename TYPE string,
gv_folder TYPE string,
go_zipper TYPE REF TO cl_abap_zip,
gt_files TYPE TABLE OF char255 WITH HEADER LINE,
gv_file TYPE string,
gv_file_fullpath TYPE string,
gv_results TYPE match_result_tab,
gv_result TYPE match_result ,
gv_folder_name TYPE string,
gv_lines TYPE i,
gv_no_files TYPE i.
*--------------------------------------------------------------------*
* START-OF-SELECTION
*--------------------------------------------------------------------*
START-OF-SELECTION.
cl_gui_frontend_services=>directory_browse(
EXPORTING window_title = 'Folder selection'
CHANGING selected_folder = gv_folder
EXCEPTIONS OTHERS = 4 ).
CHECK sy-subrc EQ 0.
cl_gui_frontend_services=>directory_list_files(
EXPORTING directory = gv_folder files_only = 'X'
CHANGING file_table = gt_files[] count = gv_no_files
EXCEPTIONS OTHERS = 4 ).
CHECK sy-subrc EQ 0 AND gv_no_files GT 0.
CREATE OBJECT go_zipper.
FIND ALL OCCURRENCES OF '\' IN gv_folder IN CHARACTER MODE RESULTS gv_results.
DESCRIBE TABLE gv_results LINES gv_lines.
READ TABLE gv_results INTO gv_result INDEX gv_lines.
ADD 1 TO gv_result-offset.
gv_folder_name = gv_folder+gv_result-offset.
LOOP AT gt_files.
MOVE gt_files TO gv_file.
CONCATENATE gv_folder '\' gv_file INTO gv_file_fullpath.
cl_gui_frontend_services=>gui_upload(
EXPORTING
filename = gv_file_fullpath
filetype = 'BIN'
IMPORTING
filelength = gv_file_length
CHANGING
data_tab = gt_filebincontent
EXCEPTIONS
OTHERS = 4 ).
CHECK sy-subrc EQ 0.
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = gv_file_length
IMPORTING
buffer = gv_filehexcontent
TABLES
binary_tab = gt_filebincontent
EXCEPTIONS
failed = 1
OTHERS = 2.
CHECK sy-subrc EQ 0.
*Populate folder name & file name
CONCATENATE gv_folder_name '\' gv_file INTO gv_file.
go_zipper->add( name = gv_file content = gv_filehexcontent ).
ENDLOOP.
gv_zipfilehex = go_zipper->save( ).
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = gv_zipfilehex
TABLES
binary_tab = gt_zipfilebin.
CONCATENATE gv_folder '.zip' INTO gv_zipfilename.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = gv_zipfilename
filetype = 'BIN'
CHANGING
data_tab = gt_zipfilebin
EXCEPTIONS
OTHERS = 4.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Azure Functions - 새 함수 만들기📮 문의하기 🇧🇷 🇺🇸 🇫🇷 에 연결되면 새 함수 앱을 만들 수 있습니다. Microsoft의 제한된 무료 서비스에 포함되어 있으므로 새 기능에 대한 소비 계획을 사용자에게 권장합니다. Visual Studio Co...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.