ABAP 操作本地文件夹(读,写,删)

打开文档

DATA:SIPATH TYPE STRING,E_RESULT TYPE ABAP_BOOL,SO_TEXT2551 TYPE SO_TEXT255.

        IF SIPATH = ''.
          EXIT.
        ENDIF.
        CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST
          EXPORTING
            FILE                     = SIPATH
          RECEIVING
            RESULT               = E_RESULT
          EXCEPTIONS
            CNTL_ERROR           = 1
            ERROR_NO_GUI         = 2
            WRONG_PARAMETER      = 3
            NOT_SUPPORTED_BY_GUI = 4
            OTHERS               = 5.
        IF SY-SUBRC <> 0."'无此文件,请核实路径/文件名是否正确!'
          EXIT.
        ENDIF.
        SO_TEXT2551 = SIPATH.
        CALL FUNCTION 'CALL_INTERNET_ADRESS'  "打开文件
             EXPORTING
               PI_ADRESS     = SO_TEXT2551
             EXCEPTIONS
               NO_INPUT_DATA = 1
               OTHERS        = 2.

检查文件夹是否存在

DATA:I_DIR TYPE LOCALFILE,STRRETURN TYPE C.

    CALL FUNCTION 'WS_QUERY'"查找文件夹是否存在
        EXPORTING
         FILENAME             = I_DIR
         QUERY                   = 'DE'
       IMPORTING
         RETURN               = STRRETURN"返回1 说明存在,0 说明不存在;
       EXCEPTIONS
         INV_QUERY            = 1
         NO_BATCH             = 2
         FRONTEND_ERROR       = 3
         OTHERS               = 4.

或者

    DATA:SIPATH TYPE STRING,E_RESULT TYPE ABAP_BOOL.
     SIPATH = 'C:\1'.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_EXIST
        EXPORTING
          DIRECTORY = SIPATH
        RECEIVING
          RESULT    = E_RESULT.

创建文件夹

DATA:RC TYPE I,SIPATH TYPE STRING,STRRETURN TYPE C.
  IF SIPATH = ''.
     STRRETURN = 0.
     EXIT.
  ENDIF.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_CREATE
      EXPORTING
        DIRECTORY = SIPATH
      CHANGING
        RC        = RC.
    IF SY-SUBRC = 0.
      STRRETURN = 1.
    ELSE.
      STRRETURN = 0.
    ENDIF.
    "返回1 说明创建成功,0 说明失败;

或者

DATA:DIRNAME LIKE RLGRAP-FILENAME.

   DIRNAME = 'C:\1'.
    CALL FUNCTION 'GUI_CREATE_DIRECTORY'
          EXPORTING
            DIRNAME = DIRNAME
          EXCEPTIONS
            FAILED  = 1
            OTHERS  = 2.

删掉整个文件夹

DATA:SIPATH TYPE STRING,RC TYPE I.
IF SIPATH = ''.EXIT.ENDIF.

    CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_DELETE
      EXPORTING
        DIRECTORY = SIPATH
      CHANGING
        RC        = RC.

复制文件到另一个文件夹

DATA:COPY TYPE STRING,SIPATH TYPE STRING.

        CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_COPY 
            EXPORTING
              SOURCE                   = SIPATH "用户上传的地址
              DESTINATION           = COPY  "复制后的网络地址
              OVERWRITE              = 'X'.
    IF SY-SUBRC = 0."写入成功

    ENDIF.

弹出框上传文件

DATA:SIPATH TYPE STRING,I_FILE_FILTER TYPE STRING,I_MULT TYPE C,I_FILE_NAME TYPE FILETABLE,V_RC TYPE I.

    SIPATH = 'C:\'."默认上传路径

    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
      EXPORTING
        INITIAL_DIRECTORY       = SIPATH
        FILE_FILTER             = I_FILE_FILTER"'所有(*.*)|*.*|图片(*.BMP)|*.bmp|JPG(*.JPG)|*.jpg|GIF(*.gif)|*.gif|PNG(*.png)|*.png'"'图片(*.bmp)|*.bmp|'
        MULTISELECTION          = I_MULT"选择多图'X',选择单图''
      CHANGING
        FILE_TABLE              = I_FILE_NAME
        RC                      = V_RC
      EXCEPTIONS
        FILE_OPEN_DIALOG_FAILED = 1
        CNTL_ERROR              = 2
        ERROR_NO_GUI            = 3
        OTHERS                  = 4.

读取文件夹的文件


DATA:SIPATH TYPE STRING,T_FILETAB TYPE TABLE OF FILE_INFO,S_FILETAB TYPE FILE_INFO,RC TYPE I.

SIPATH = 'C:\1'.

        CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES
          EXPORTING
            DIRECTORY                   = SIPATH
          CHANGING
            FILE_TABLE                  = T_FILETAB[]
            COUNT                       = RC
          EXCEPTIONS
            CNTL_ERROR                  = 1
            DIRECTORY_LIST_FILES_FAILED = 2
            WRONG_PARAMETER             = 3
            ERROR_NO_GUI                = 4
            NOT_SUPPORTED_BY_GUI        = 5
            OTHERS                      = 6.
    LOOP AT T_FILETAB INTO S_FILETAB. 

    ENDLOOP.

删除文件夹的文件

DATA:V_RC TYPE I,SIPATH TYPE STRING.
    SIPATH = 'C:\1\XXX'.
          CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_DELETE
            EXPORTING
              FILENAME = SIPATH
            CHANGING
              RC       = V_RC
            EXCEPTIONS
              OTHERS   = 1.
 

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指尖溯光

创作不易您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值