You are on page 1of 6

PARAMETERS L_FILE TYPE LOCALFILE.

DATA: STATUS TYPE C.


*保存文件夹路径.
DATA: BEGIN OF FOLDER OCCURS 0, 
       DIRE TYPE LOCALFILE,  
       END OF FOLDER.
* 保存文件夹路径识别符号.
DATA: BEGIN OF SIGN OCCURS 0 ,
            SIG TYPE C ,      
          END OF SIGN.
START-OF-SELECTION.
  CLEAR: STATUS ,FOLDER[],SIGN[].
* 新增文件夹路径识别符号,如果没有相关符号则辨别为无效路径.
  SIGN-SIG = '/'.
  APPEND SIGN.

  SIGN-SIG = '

图片 1.jpg (18.41 KB, 下载次数: 0)

图片 2.jpg (25.98 KB, 下载次数: 0)


REPORT Z_EXAMPLE_01 .
parameter: l_file type localfile.
data: status type c.

REPORT Z_EXAMPLE_01 .
parameter: l_file type localfile.
data: status type c.
"保存文件夹的路径
data: begin of folder occurs 0,
dire type localfile,
end of folder.
"保存文件夹路径识别符号。
data: begin of sign occurs 0,
sig type c,
end of sign.
start-of-selection.
clear: folder[],sign[],status.
"新增文件夹路径识别符号,如果没有相关的符号则为无效路径
sign-sig = '/'.
append sign.
sign-sig = '\'.
append sign.
search l_file for sign.
"判断文件夹路径字符串是否有效,无效退出
if sy-subrc <> 0 .
message e005(zmess) with 'not valuable directory!'.
exit.
else.
"检查该文件夹是否已经存在
perform checkdir using l_file changing status.
if status = 1.
message e005(zmess) with 'the directory is exit!'.
exit.
endif.
endif.
split l_file at sign into table folder.
read table folder index 1.
l_file = folder-dire."内表的第一行为盘符
loop at folder.
"循环读取文件夹字符,检查该路径是否存在,不在则创建
if sy-tabix > 1.
concatenate l_file '\' folder-dire into l_file.
perform checkdir using l_file changing status.
if status = 0.
perform createrdir using l_file .
endif.
endif.
endloop.
*---------------------------------------------------------
*-检查路径是否存在,存在则函数返回 1,不存在返回 0 --------
*---------------------------------------------------------
form checkdir using dir type localfile changing ret type c.
CALL FUNCTION 'WS_QUERY'
EXPORTING
* ENVIRONMENT =
FILENAME = DIR
QUERY = 'DE'
* WINID =
IMPORTING
RETURN = RET
EXCEPTIONS
INV_QUERY =1
NO_BATCH =2
FRONTEND_ERROR =3
OTHERS = 4.
ENDFORM. "checkdir
*---------------------------------------------------------
*-----根据路径创建文件夹----------------------------------
*---------------------------------------------------------
FORM CREATERDIR USING DIR TYPE LOCALFILE.
CALL FUNCTION 'GUI_CREATE_DIRECTORY'
EXPORTING
DIRNAME = DIR
EXCEPTIONS
FAILED = 1
OTHERS = 2.
WRITE: / 'CREATE DIRECTOR SUCCESS,PATH:',DIR.
ENDFORM. "CREATERDIR

REPORT Z_EXAMPLE_01 .
parameter: l_file type localfile.
data: status type c.
"保存文件夹的路径
data: begin of folder occurs 0,
dire type localfile,
end of folder.
"保存文件夹路径识别符号。
data: begin of sign occurs 0,
sig type c,
end of sign.
start-of-selection.
clear: folder[],sign[],status.
"新增文件夹路径识别符号,如果没有相关的符号则为无效路径
sign-sig = '/'.
append sign.
sign-sig = '\'.
append sign.
search l_file for sign.
"判断文件夹路径字符串是否有效,无效退出
if sy-subrc <> 0 .
message e005(zmess) with 'not valuable directory!'.
exit.
else.
"检查该文件夹是否已经存在
perform checkdir using l_file changing status.
if status = 1.
message e005(zmess) with 'the directory is exit!'.
exit.
endif.
endif.
split l_file at sign into table folder.
read table folder index 1.
l_file = folder-dire."内表的第一行为盘符
loop at folder.
"循环读取文件夹字符,检查该路径是否存在,不在则创建
if sy-tabix > 1.
concatenate l_file '\' folder-dire into l_file.
perform checkdir using l_file changing status.
if status = 0.
perform createrdir using l_file .
endif.
endif.
endloop.
*---------------------------------------------------------
*-检查路径是否存在,存在则函数返回 1,不存在返回 0 --------
*---------------------------------------------------------
form checkdir using dir type localfile changing ret type c.
CALL FUNCTION 'WS_QUERY'
EXPORTING
* ENVIRONMENT =
FILENAME = DIR
QUERY = 'DE'
* WINID =
IMPORTING
RETURN = RET
EXCEPTIONS
INV_QUERY =1
NO_BATCH =2
FRONTEND_ERROR =3
OTHERS = 4.
ENDFORM. "checkdir
*---------------------------------------------------------
*-----根据路径创建文件夹----------------------------------
*---------------------------------------------------------
FORM CREATERDIR USING DIR TYPE LOCALFILE.
CALL FUNCTION 'GUI_CREATE_DIRECTORY'
EXPORTING
DIRNAME = DIR
EXCEPTIONS
FAILED = 1
OTHERS = 2.
WRITE: / 'CREATE DIRECTOR SUCCESS,PATH:',DIR.
ENDFORM. "CREATERDIR

You might also like