检查文件是否存在比 OPEN DATASET 更快

发布于 2025-01-12 20:50:26 字数 482 浏览 0 评论 0原文

我正在寻找一种方法来检查文件在使用 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.

I'm searching for a way to check if a file exists before using the OPEN DATASET command to open it. The OPEN DATASET command takes up to 30 seconds to trigger an exception, which is too slow for my liking.

This is the code:

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

摘星┃星的人 2025-01-19 20:50:26

试试这个:

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

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

Try this:

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

It can also be used for remote servers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文