List of directory file.

Question:
Hallo All, Is there any other way to get the file names in a directory other than 'TMP_GUI_DIRECTORY_LIST_FILES' and CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES. Coz I can't use any GUI FM or methods. The purpose is I need this report for a backgroundjob..even the question is some how confusing. Please try to give me a clue.. ..regards.Sri
Answer:
this will read the directory on apps server. works in foreground and background.
hope it helps.
randy
**********************************************************************
* Program Description:
*
*   This program list the files in a directory on the application
*   server.
*
*
**************Maintenance Changes************************************
* Transport# |WHO| Date   | Description of change
*         
*********************************************************************
REPORT zgetdir STANDARD PAGE HEADING
   LINE-SIZE 94
   LINE-COUNT 65.
PARAMETER:
*  p_path(50) type c default '/usr/sap/transfer' lower case.
  P_PATH(50) TYPE C DEFAULT '/tmp' LOWER CASE,
  P_SRTNAM RADIOBUTTON GROUP GP1,
  P_SRTDAT RADIOBUTTON GROUP GP1,
  P_SRTSIZ RADIOBUTTON GROUP GP1.
CONSTANTS:
  DAYS1980 TYPE I VALUE 3652.
DATA:
  INFILE LIKE RTERM-FILE,
  OUTFILE LIKE RTERM-FILE.
DATA:
  BEGIN OF ATTR OCCURS 0,
    FILE_NAME  LIKE EPSF-EPSFILNAM,
    FILE_SIZE  LIKE EPSF-EPSFILSIZ,
    FILE_OWNER LIKE EPSF-EPSFILOWN,
    FILE_MODE  LIKE EPSF-EPSFILMOD,
    FILE_TYPE  LIKE EPSF-EPSFILTYP,
    FILE_MTIME(12),
  END OF ATTR,
  HEADING_TEXT(90).
*---------------------------E V E N T----------------------------------*
*--------------------------TOP-OF-PAGE---------------------------------*
* Print page header.
TOP-OF-PAGE.
  PERFORM SET_UP_HEADINGS.
*---------------------------E V E N T----------------------------------*
*-----------------------END-OF-SELECTION-------------------------------*
END-OF-SELECTION.
  HEADING_TEXT = 'File Name'.
  HEADING_TEXT+41(10) = 'File Size'.
  HEADING_TEXT+52(11) = 'Change Date'.
  PERFORM EPS_GET_DIRECTORY_LISTING USING P_PATH 'X'.
*---------------------------------------------------------------------*
*       FORM EPS_GET_DIRECTORY_LISTING                                *
*---------------------------------------------------------------------*
*       Get an application server directory listing.                  *
*---------------------------------------------------------------------*
FORM EPS_GET_DIRECTORY_LISTING USING DIR_NAME TYPE C
                                     P_LONG TYPE C.
  CONSTANTS:
        C_REL_I_DATE       TYPE I  VALUE 722816.
  TYPES:
    CX_POINT_IN_TIME.
  DATA:
    DIR_LIST LIKE EPSFILI OCCURS 0 WITH HEADER LINE,
    TPATH    LIKE EPSF-EPSDIRNAM,
    MDATE    LIKE SY-DATUM,
    MTIME    LIKE SY-UZEIT,
    POINT_IN_TIME TYPE I,
    POINT_1970    TYPE I.
  TPATH = DIR_NAME.
  CALL FUNCTION 'EPS_GET_DIRECTORY_LISTING'
*      destination                 rfc_destination
       EXPORTING
            DIR_NAME               = TPATH
       TABLES
            DIR_LIST               = DIR_LIST
       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.
  IF SY-SUBRC NE 0.
    WRITE: / 'Status =', SY-SUBRC.
    EXIT.
  ENDIF.
  IF P_LONG IS INITIAL.
    LOOP AT DIR_LIST.
      WRITE: / DIR_LIST-NAME.
    ENDLOOP.
  ELSE.
    LOOP AT DIR_LIST.
      CALL FUNCTION 'EPS_GET_FILE_ATTRIBUTES'
           EXPORTING
                FILE_NAME              = DIR_LIST-NAME
                DIR_NAME               = TPATH
           IMPORTING
                FILE_SIZE              = ATTR-FILE_SIZE
                FILE_OWNER             = ATTR-FILE_OWNER
                FILE_MODE              = ATTR-FILE_MODE
                FILE_TYPE              = ATTR-FILE_TYPE
                FILE_MTIME             = ATTR-FILE_MTIME
           EXCEPTIONS
                READ_DIRECTORY_FAILED  = 1
                READ_ATTRIBUTES_FAILED = 2
                OTHERS                 = 3.
      IF SY-SUBRC EQ 0.
        ATTR-FILE_NAME = DIR_LIST-NAME.
        APPEND ATTR.
      ENDIF.
    ENDLOOP.
    IF     P_SRTNAM NE ' '.
*     Sort by file name.
      SORT ATTR BY FILE_NAME.
    ELSEIF P_SRTDAT NE ' '.
*     Sort by change date.
      SORT ATTR BY FILE_MTIME DESCENDING.
    ELSEIF P_SRTSIZ NE ' '.
      SORT ATTR BY FILE_SIZE.
    ENDIF.
    LOOP AT ATTR.
*     Convert seconds since 1970 to date, time.
      POINT_IN_TIME = ATTR-FILE_MTIME.
      CALL FUNCTION 'POINT_IN_TIME_CONVERT'
           EXPORTING
                POINT_IN_TIME = POINT_IN_TIME
           IMPORTING
                DATE          = MDATE
                TIME          = MTIME
           EXCEPTIONS
                OTHERS        = 1.
*     Correct for SAP start date time.
      SUBTRACT DAYS1980 FROM MDATE.
      WRITE: / ATTR-FILE_NAME,
               ATTR-FILE_SIZE,
               MDATE,
               MTIME.
    ENDLOOP.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM EPS_GET_FILE_ATTRIBUTES                                  *
*---------------------------------------------------------------------*
*       Get an application server file's attributes.
*---------------------------------------------------------------------*
FORM EPS_GET_FILE_ATTRIBUTES USING NAME DIR.
  DATA:
    FILE_NAME LIKE  EPSF-EPSFILNAM,
    DIR_NAME LIKE  EPSF-EPSDIRNAM,
    PATH(60).
  DATA:
    BEGIN OF FILE,
    DIRNAME(75) TYPE C, " name of directory. (possibly truncated.)
    NAME(75)    TYPE C, " name of entry. (possibly truncated.)
    TYPE(10)    TYPE C,                " type of entry.
    LEN       LIKE EPSF-EPSFILSIZ,     " length in bytes.
    OWNER     LIKE EPSF-EPSFILOWN,     " owner of the entry.
    MTIME(6)    TYPE P, " last modification date, seconds since 1970
    MODE LIKE EPSF-EPSFILMOD, " like "rwx-r-x--x": protection mode.
    ERRNO(3)    TYPE C,
    ERRMSG(40)  TYPE C,
    END OF FILE.
  FILE_NAME = NAME.
  DIR_NAME = DIR.
  CALL FUNCTION 'EPS_GET_FILE_ATTRIBUTES'
       EXPORTING
            FILE_NAME              = FILE_NAME
            DIR_NAME               = DIR_NAME
       IMPORTING
            FILE_SIZE              = FILE-LEN
            FILE_OWNER             = FILE-OWNER
            FILE_MODE              = FILE-MODE
            FILE_TYPE              = FILE-TYPE
            FILE_MTIME             = FILE-MTIME
       EXCEPTIONS
            READ_DIRECTORY_FAILED  = 1
            READ_ATTRIBUTES_FAILED = 2
            OTHERS                 = 3.
  IF SY-SUBRC NE 0.
    WRITE: / 'Status =', SY-SUBRC.
    EXIT.
  ENDIF.
  CONCATENATE DIR NAME INTO PATH SEPARATED BY '/'.
  WRITE: / PATH.
  WRITE: / 'mtime =', FILE-MTIME.
  WRITE: / 'size =', FILE-LEN.
  WRITE: / 'owner =', FILE-OWNER.
  WRITE: / 'mode =', FILE-MODE.
  WRITE: / 'type =', FILE-TYPE.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM FILENAME_GET                                             *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM FILENAME_GET.
  CALL FUNCTION 'FILENAME_GET'
       EXPORTING
            FILENAME = INFILE
            TITLE    = 'title'
       IMPORTING
            FILENAME = OUTFILE
       EXCEPTIONS
            OTHERS   = 1.
  WRITE: / 'Status =', SY-SUBRC, OUTFILE.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM SET_UP_HEADINGS                                          *
*---------------------------------------------------------------------*
*       Display heading for each page.                                *
*---------------------------------------------------------------------*
FORM SET_UP_HEADINGS.
  STATICS:
    PAGE_CNT TYPE P.
  DATA:
    PAGE_COL TYPE P,
    TITLE_COL TYPE P,
    PAGE_NUM_COL TYPE P,
    PAGE_WIDTH TYPE P.
  PAGE_WIDTH = SY-LINSZ.               "size of report
  TITLE_COL = PAGE_WIDTH / 2 - ( STRLEN( SY-TITLE ) / 2 ).
  PAGE_COL = PAGE_WIDTH - 9.
  PAGE_NUM_COL = PAGE_WIDTH - 4.
  PAGE_CNT = PAGE_CNT + 1.
  WRITE:  /1  'DATE ', SY-DATUM, SY-UZEIT,
         AT TITLE_COL  SY-TITLE,
         AT PAGE_COL  'PAGE',
         AT PAGE_NUM_COL(5) PAGE_CNT NO-ZERO.
  WRITE:  /1  'Report:', SY-REPID, 'Client:', SY-MANDT.
  ULINE.
  IF NOT HEADING_TEXT IS INITIAL.
    WRITE: / HEADING_TEXT.
    SKIP.
  ENDIF.
ENDFORM.                               " SET_UP_HEADINGSde]
Answer:
hi
good job, works fine.
mlnaras
Answer:
Hi,
Just try to use this FM....
RZL_READ_DIR_LOCAL
Thanks.

More Articles:

exporting , changing , table parametrs?
simple loop at syntax question?
sy-tcode for transaction variant?
About Export parameter?
FM or BAPI for Post goods the Delivery numbers (VL02N)?
How to identify menu-exit and screen exit?