MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Lectura de carpeta en PC (foro/showthread.php?t=831)

nros 07/06/06 23:07:24

Lectura de carpeta en PC
 
Alguien sabe como leer todos los archivos contenidos en una carpeta, la cual se encuentra en la PC?
es decir si tengo la ruta C:\MIS DOCUMENTOS
saber los nombres de todos los archivos .txt que se encuentren en esta carpeta

gib8107 08/06/06 00:55:47

Espero esto te sirva




el include que viene INCLUDE ZBSD0002.
el de las variables no lo ocupas



esencialmente es como sigue
defines un parametro de seleccion asi como se ilustra acontinuacion

posteriormente cachas el evento del F4 con

y mandas llamar la funcion





y pues dicha funcion yo la puse en un uinclude ya que no es lo unico que se maneja con archivos pues puse funciones similares en el include

Adicionalmente

con esta funcion puedes leer el archivo

que tambien esta en el include

es decir la primer funcion es para que puedas obtener la ruta con F4 alo mejor no te interesa

pero la segunda funcion F_BUSCA_ARCHIVO TE REGRESA EN T_DATA_TAB LO QUE TENGAS EN EL ARCHIVO DE TEXTO PLANO

A POR SI ACASO T_DATA_TAB DEVE DE SER DECLARADA ASI

Vero2007 23/03/07 08:47:52

* Devuelve una lista con todos los ficheros de la carpeta especificada
CALL FUNCTION 'SUBST_GET_FILE_LIST'
EXPORTING
DIRNAME = carpeta_orig
FILENM = '*'
PATTERN = '*'
TABLES
FILE_LIST = itab_lista .

Vero2007 23/03/07 08:57:45

TMP_GUI_DIRECTORY_LIST_FILES

Esa funcion tambien puede encontrar todos los fichero que hay en un directorio

Claudia Valdespino 28/03/07 21:20:36

Hola, para obtener el nombre de los archivos de un fichero utiliza:

perform obtener_archivos_directorio using v_ruta
changing t_texto[].

*&---------------------------------------------------------------------*
*& Form obtener_archivos_directorio
*&---------------------------------------------------------------------*
* Se encarga de obtener la lista (nombres) de archivos que se
* encuentran en la ruta de archivo especificada
*----------------------------------------------------------------------*
form obtener_archivos_directorio using p_dirname type c
changing p_archivos like t_fichero[].

data: lw_searchpoints type ty_searchpoints,
errno(3) type c,
errmsg(40) type c,
name(75) type c,
w_archivo like t_fichero.

clear lw_searchpoints.

refresh p_archivos.
concatenate p_dirname '/' into lw_searchpoints-dirname.
lw_searchpoints-sp_name = '*'.

call 'C_DIR_READ_FINISH' " just to be sure
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.
clear: errno, errmsg.

call 'C_DIR_READ_START' id 'DIR' field lw_searchpoints-dirname
id 'FILE' field lw_searchpoints-sp_name
id 'ERRNO' field errno
id 'ERRMSG' field errmsg.

if sy-subrc <> 0.
exit.
endif.

do.
call 'C_DIR_READ_NEXT'
id 'NAME' field name.

if sy-subrc = 0.
clear w_archivo.
w_archivo-texto = name.
append w_archivo to p_archivos.
else.
exit.
endif.
enddo.

close dataset lw_searchpoints-dirname.
endform. "obtener_archivos_directorio


Al final en la tabla p_archivo (t_texto[]) tienes los nombres de los archivos del directorio que pusiste.

luisconmiedo 09/04/08 21:05:26

Leer ficheros de un directorio
 
FORM cargar_lista_archivos .

DATA: nombre(250) TYPE c,
temporal(250) TYPE c,
archivos TYPE TABLE OF rsfillst,
directorios TYPE TABLE OF sdokpath.

temporal = destino.

CONCATENATE temporal '\' INTO nombre.
CONDENSE nombre.
CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'
EXPORTING
directory = nombre
* FILTER = '*.*'
* IMPORTING
* FILE_COUNT =
* DIR_COUNT =
TABLES
file_table = archivos
dir_table = directorios
* 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.

ENDFORM. " cargar_lista_archivos

Efectivamente con este modulo de funcio (TMP_GUI_DIRECTORY_LIST_FILES) se leen los ficheros que posee un archivo y adicionalmente entrega los nombres de otros ficheros que puedan estar al interior. Yo moleste un rato con las otras opciones y ninguna funcionaba y en definitiva esta es la mas practica. Por favor tengan en cuenta que la ruta del directorio debe terminar en "/" para UNIX y en "\" para windows. A mi me quito dos horas solo por no agregar esta terminacion a la ruta.


Husos Horarios son GMT. La hora en este momento es 09:27:17.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web