Monday, November 06, 2006

Problemas con el listado de archivos...


Seguramente, alguna vez habrán utilizado la función TMP_GUI_DIRECTORY_LIST_FILES para listar todos los archivos que hay en una carpeta, y se habrán dado cuenta de que la función no toma el cuenta el filtro que utilicemos...
Aquí les dejo un pequeño programa para resolver este problema de una manera muy simple...

REPORT Z_DUMMY_ATG_3 NO STANDARD PAGE HEADING.

DATA: FILTER(3) TYPE C,
TEMP_EXT TYPE STRING,
LONG TYPE I,
W_TABIX TYPE SY-TABIX,
DIR(200) TYPE C.

DATA: T_FILE_TABLE TYPE STANDARD TABLE OF SDOKPATH
WITH HEADER LINE,
T_DIR_TABLE TYPE STANDARD TABLE OF SDOKPATH
WITH HEADER LINE.

FILTER = 'txt'.
DIR = 'C:\'.

CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'
EXPORTING
DIRECTORY = DIR
TABLES
FILE_TABLE = T_FILE_TABLE
DIR_TABLE = T_DIR_TABLE
EXCEPTIONS
CNTL_ERROR = 1
OTHERS = 2.

LOOP AT T_FILE_TABLE.
LONG = STRLEN( T_FILE_TABLE-PATHNAME ).
LONG = LONG - 3.
TEMP_EXT = T_FILE_TABLE-PATHNAME+LONG(3).
IF TEMP_EXT NE FILTER.
W_TABIX = SY-TABIX.
DELETE T_FILE_TABLE INDEX SY-TABIX.
ELSE.
WRITE:/ T_FILE_TABLE-PATHNAME.
ENDIF.
ENDLOOP.

Saludos,

Blag.

No comments: