INCLUDE ZTEST_FILEPATH_SEL.
PARAMETERS: P_FILE1 TYPE RLGRAP-FILENAME DEFAULT 'C:\',
P_FILE2 TYPE RLGRAP-FILENAME DEFAULT 'C:\'.
1. 사용자가 파일 경로만 선택할 수 있도록
FORM GET_FILEPATH1 USING PV_FILE.
DATA : LD_INITIAL_FOLDER TYPE STRING,
LD_WINDOW_TITLE TYPE STRING,
LD_SELECTED TYPE STRING.
LD_WINDOW_TITLE = '디렉토리 경로'.
* 폴더에 다운로드
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
EXPORTING
WINDOW_TITLE = LD_WINDOW_TITLE "제목
INITIAL_FOLDER = LD_INITIAL_FOLDER
CHANGING
SELECTED_FOLDER = LD_SELECTED
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS = 4.
PV_FILE = LD_SELECTED.
ENDFORM.
결과 화면

2. 사용자가 파일 경로 & 파일명 입력하게끔
FORM GET_FILENAME2 USING PV_FILE.
DATA : LT_FILE_TABLE TYPE FILETABLE,
LS_FIEL_TABLE TYPE FILE_TABLE,
LV_FILE_FILTER TYPE STRING,
LV_SUBRC TYPE I,
LV_ACTION TYPE I.
CLEAR : LT_FILE_TABLE, LT_FILE_TABLE[],
LS_FIEL_TABLE,
LV_FILE_FILTER,
LV_SUBRC,
LV_ACTION.
CONCATENATE CL_GUI_FRONTEND_SERVICES=>FILETYPE_EXCEL
" Microsoft Excel 파일(*.XLS;*.XLSX;*.XLSM)|*.XLS;*.XLSX;*.XLSM|
CL_GUI_FRONTEND_SERVICES=>FILETYPE_ALL
" 모든 파일(*.*)|*.*|
INTO LV_FILE_FILTER.
*- FIle Select
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'File Path'
DEFAULT_EXTENSION = CL_GUI_FRONTEND_SERVICES=>FILETYPE_EXCEL
DEFAULT_FILENAME = ''
FILE_FILTER = LV_FILE_FILTER " 내가 선택할 수 있는 파일 종류
WITH_ENCODING = ''
* initial_directory = 'C:\'
MULTISELECTION = ' '
CHANGING
FILE_TABLE = LT_FILE_TABLE
RC = LV_SUBRC
USER_ACTION = LV_ACTION
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
OTHERS = 5.
CALL METHOD CL_GUI_CFW=>FLUSH.
CASE LV_ACTION.
WHEN CL_GUI_FRONTEND_SERVICES=>ACTION_OK.
READ TABLE LT_FILE_TABLE INDEX 1 INTO LS_FIEL_TABLE.
IF SY-SUBRC EQ 0.
CLEAR : PV_FILE.
PV_FILE = LS_FIEL_TABLE.
ELSE.
ENDIF.
WHEN CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.
EXIT.
WHEN OTHERS.
EXIT.
ENDCASE.
ENDFORM.
결과 화면

+번외
기본 경로 바탕화면으로 자동 지정하기
DATA: DESKTOPDIRECTORY TYPE STRING.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_DESKTOP_DIRECTORY
CHANGING
DESKTOP_DIRECTORY = DESKTOPDIRECTORY.