Hi
I suppose you can find out many solution, one could be this:
DATA: files_list TYPE filetable WITH HEADER LINE.
DATA: l_rc TYPE i.
DATA: us_act TYPE i.
DATA: l_filepath TYPE dbmsgora-filename.
DATA: l_file_name TYPE sdbah-actid,
l_file_ext TYPE sdbad-funct.
DATA: full_file_name TYPE string.
DATA: init_dir TYPE string.
DO.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
* window_title =
* default_extension =
* default_filename =
* file_filter =
* with_encoding =
initial_directory = init_dir
* multiselection =
CHANGING
file_table = files_list[]
rc = l_rc
user_action = us_act
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0.
EXIT.
ENDIF.
IF us_act = cl_gui_frontend_services=>action_cancel.
EXIT.
ENDIF.
READ TABLE files_list INDEX 1.
l_filepath = files_list.
CALL FUNCTION 'SPLIT_FILENAME'
EXPORTING
long_filename = l_filepath
IMPORTING
pure_filename = l_file_name
pure_extension = l_file_ext.
CONCATENATE l_file_name '.' l_file_ext INTO full_file_name.
SEARCH l_filepath FOR full_file_name.
init_dir = l_filepath(sy-fdpos).
ENDDO.
Max