11-15-2005 5:52 AM
HI,
I want read sorted files from directory on application server.
Can anybody help me out in following doubts.
1) HOw to sort files of directory on application server.
2) How to read all sorted files.
Thanks in Advance.
Waiting for reply.
Thanks & regards,
Nitin
11-15-2005 6:05 AM
Using this code U can read application server files.
After geting files in to Internal table Sort it.
*Diclarations
DATA: BEGIN OF SEARCHPOINTS OCCURS 10,
DIRNAME TYPE NAME_OF_DIR, " name of directory.
SP_NAME TYPE NAME_OF_FILE, " name of entry. (may end with *)
SP_CS(10) TYPE C, " ContainsString pattern for name.
END OF SEARCHPOINTS.
DATA: BEGIN OF FILE,
DIRNAME TYPE NAME_OF_DIR, " name of directory. (possibly
" truncated.)
NAME TYPE NAME_OF_FILE, " name of entry. (possibly
" truncated.)
TYPE(10) TYPE C, " type of entry.
LEN(8) TYPE P, " length in bytes.
OWNER(8) TYPE C, " owner of the entry.
MTIME(6) TYPE P, " last modification date, seconds since
MODE(9) TYPE C,
USEABLE(1) TYPE C,
SUBRC(4) TYPE C,
ERRNO(3) TYPE C,
ERRMSG(40) TYPE C,
MOD_DATE TYPE D,
MOD_TIME(8) TYPE C, " hh:mm:ss
SEEN(1) TYPE C,
CHANGED(1) TYPE C,
END OF FILE.
MOVE V_PL_PHYS_PATH TO SEARCHPOINTS-DIRNAME.
" V_PL_PHYS_PATH Is application server path
MOVE '*' TO SEARCHPOINTS-SP_NAME.
Retriving File names by Passing Direcotry name
PERFORM FILL_FILE_LIST USING SEARCHPOINTS-DIRNAME
SEARCHPOINTS-SP_NAME
SEARCHPOINTS-SP_CS.
FORM FILL_FILE_LIST USING A_DIR_NAME A_GENERIC_NAME A_MUST_CS.
DATA: ERRCNT(2) TYPE P VALUE 0.
CALL 'C_DIR_READ_FINISH' " just to be sure
ID 'ERRNO' FIELD FILE-ERRNO
ID 'ERRMSG' FIELD FILE-ERRMSG.
CALL 'C_DIR_READ_START' ID 'DIR' FIELD A_DIR_NAME
ID 'FILE' FIELD A_GENERIC_NAME
ID 'ERRNO' FIELD FILE-ERRNO
ID 'ERRMSG' FIELD FILE-ERRMSG.
IF SY-SUBRC <> 0.
SY-SUBRC = 4.
EXIT.
ENDIF.
DO.
CLEAR FILE.
CALL 'C_DIR_READ_NEXT'
ID 'TYPE' FIELD FILE-TYPE
ID 'NAME' FIELD FILE-NAME
ID 'LEN' FIELD FILE-LEN
ID 'OWNER' FIELD FILE-OWNER
ID 'MTIME' FIELD FILE-MTIME
ID 'MODE' FIELD FILE-MODE
ID 'ERRNO' FIELD FILE-ERRNO
ID 'ERRMSG' FIELD FILE-ERRMSG.
FILE-DIRNAME = A_DIR_NAME.
MOVE SY-SUBRC TO FILE-SUBRC.
CASE SY-SUBRC.
WHEN 0.
CLEAR: FILE-ERRNO, FILE-ERRMSG.
CASE FILE-TYPE(1).
WHEN 'F'. " normal file.
MOVE FILE-NAME TO FILE_NAMES-FILE_NAME.
APPEND FILE_NAMES.
WHEN 'f'. " normal file.
MOVE FILE-NAME TO FILE_NAMES-FILE_NAME.
APPEND FILE_NAMES.
ENDCASE.
WHEN 1. " end of directory
EXIT.
WHEN OTHERS.
ADD 1 TO ERRCNT.
IF ERRCNT > 90.
EXIT.
ENDIF.
ENDCASE.
ENDDO.
ENDFORM. "FILL_FILE_LIST
11-15-2005 7:22 AM
Hi,
look fm EPS_GET_DIRECTORY_LISTING
-> you can sort exported table DIR_LIST,
loop about and read it with commands:
open/read dataset
Andreas
11-15-2005 7:23 AM
hi,
check this code this must help you,
TYPES: BEGIN OF T_TAB,
T(60) TYPE C,
END OF T_TAB.
DATA: V_COUNT TYPE I, X_FILE TYPE T_TAB,
IT_FILETABLE TYPE STANDARD TABLE OF T_TAB .
call method cl_gui_frontend_services=>directory_list_files
exporting
directory = 'C:\'
FILTER = '.'
FILES_ONLY =
DIRECTORIES_ONLY =
changing
file_table = IT_FILETABLE
count = V_COUNT
EXCEPTIONS
CNTL_ERROR = 1
DIRECTORY_LIST_FILES_FAILED = 2
WRONG_PARAMETER = 3
ERROR_NO_GUI = 4
NOT_SUPPORTED_BY_GUI = 5
others = 6
.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
SORT IT_FILETABLE.
LOOP AT IT_FILETABLE INTO X_FILE.
WRITE:/ X_FILE.
ENDLOOP.
regards,
manohar.