检查文件是否比 OPEN DATASET 更快

Check if a file exists faster than OPEN DATASET

我正在寻找一种方法来检查文件是否存在,然后 使用 OPEN DATASET 命令打开它。 OPEN DATASET 命令最多需要 30 秒才能触发异常,这对我来说太慢了。

这是代码:

TRY.
  OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE
                       ENCODING DEFAULT
                       WITH SMART LINEFEED.

  CONCATENATE ` ` lv_resultdata INTO lv_resultdata.

  TRANSFER lv_resultdata TO lv_file.
  CLOSE DATASET lv_file.

CATCH cx_sy_file_access_error.

MESSAGE 'Placeholder-message. File cannot be reached'.
EXIT.
ENDTRY.

试试这个:

DATA: filepath TYPE epsf-epsdirnam VALUE '/tmp'.

CALL FUNCTION 'EPS_GET_DIRECTORY_LISTING'
  EXPORTING
    dir_name               = filepath
    file_mask              = 'somefile.txt'
  EXCEPTIONS
    invalid_eps_subdir     = 1
    sapgparam_failed       = 2
    build_directory_failed = 3
    no_authorization       = 4
    read_directory_failed  = 5
    too_many_read_errors   = 6
    empty_directory_list   = 7
    OTHERS                 = 8.

CHECK sy-subrc = 0.

" writing dataset

它也可以用于远程服务器。