Programación General > ABAP

 Nombre De Archivos.

(1/2) > >>

senzao18:
Alguien sabra alguna funcion la cual me regrese el nombre de todos los archivos contenidos en una carpeta????

Blag:
Claro!  :lol:

TMP_GUI_DIRECTORY_LIST_FILES

Te devuelve tantos los archivos como las subcarpetas existentes en un directorio  B)

Saludos,

Blag  :smartass:

senzao18:
Gracias de antemano y:

Horales yo logre hacerlo con las siguientes lineas de codigo jeje...


--- Código: Text ---   CONCATENATE 'dir /A:-D C:' INTO v_comando SEPARATED BY space.  CONCATENATE v_comando '\*.bmp' INTO v_comando.   CALL 'SYSTEM' ID 'COMMAND' FIELD v_comando ID 'TAB' FIELD tabl-*sys*.    DESCRIBE TABLE tabl LINES v_pos.   v_pos = v_pos - 2.   LOOP AT tabl FROM 6 TO v_pos.     t_arch = tabl+39.     APPEND t_arch.     CLEAR t_arch.   ENDLOOP.  
Voy a probar la funcion que manda blag y si veo algo mejor ahi les cuento..

senzao18:
Listo......

--- Código: Text ---    CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'    EXPORTING     directory        = p_ruta     filter           = '*.*' IMPORTING   file_count       = v_file_count*   DIR_COUNT        =    TABLES      file_table       = ti_files      dir_table        = ti_directories   EXCEPTIONS     cntl_error       = 1     OTHERS           = 2.   IF sy-subrc <> 0.    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.  ENDIF.   
Aunque el filter no da bola, siempre me regresa algo ponga lo que le ponga.....

Ideas??

Pero fuera de eso todo esta estupendo....

Asi no uso el CALL 'SYSTEM' que en la ayuda dice que no lo use nose por que...

Blag:

--- Citar ---Aunque el filter no da bola, siempre me regresa algo ponga lo que le ponga.....

Ideas??

--- Fin de la cita ---

Tienes razón...El FILTER no hace nada de nada  :(  La solución sería la siguiente...

Lees la tabla FILE_TABLE y el campo PATHNAME, por cada archivo obtienes la longitud y eliminas los que no cumplan con tu filtro  :lol:


--- Código: Text --- DATA: FILTER TYPE C,          TEMP_EXT TYPE STRING,          LONG TYPE I,          W_TABIX TYPE SY-TABIX. FILTER = '.TXT'. LOOP AT T_FILE_TABLE.LONG = STRLEN( T_FILE_TABLE-PATHNAME ).LONG = LONG - 3.TEMP_EXT = T_FILE_TABLE-PATHNAME+LONG(3).IF TEMP_FILE NE FILTER.  W_TABIX = SY-TABIX.  DELETE T_FILE_TABLE INDEX SY-TABIX.ENDIF.ENDLOOP.  
Lo escrito de frente aquí que puede tener algunos errores, pero supongo que entiendes la idea  :comp:

Saludos,

Blag  :smartass:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa