PDA

Ver la Versión Completa : Tamaño de un fichero de más de 1Gb


pierre
25/05/06, 07:56:11
Hola, buenos días,

Necesitaría saber de una función que devuelva el tamaño de un fichero y que funcione también para ficheros de tamaño mayor que 1Gb. Ahora estoy usando la función /SDF/GET_FILE_INFO pero no funciona para esos ficheros. Me parecería extraño que SAP no lo permitiese dado que nos deja manejar grandes volumenes de datos. En fin si alguien sabe algo le agradecería que me eche una mano ;)
Muchas gracias, saludos.

tracer
25/05/06, 08:34:38
Hola Pierre,

Puedes hacerlo con ayuda de la clase CL_GUI_FRONTEND_SERVICES y el método FILE_GET_SIZE

Aqui tienes unos ejemplos.

CALL METHOD cl_gui_frontend_services=>file_get_size
EXPORTING
file_name = str
IMPORTING
file_size = size.

CALL METHOD cl_gui_cfw=>flush( ).
WRITE: / file(50), size.

Echale un vistazo a este también

DATA: FILETAB TYPE TABLE OF FILE_INFO,
FILEREC TYPE FILE_INFO,
COUNT TYPE i,
FZISE TYPE i.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES
EXPORTING
DIRECTORY = '<Yourfilename>'
FILTER = ''
FILES_ONLY = 'X'
CHANGING
FILE_TABLE = FILETAB
COUNT = COUNT
EXCEPTIONS
CNTL_ERROR = 1
DIRECTORY_LIST_FILES_FAILED = 2
WRONG_PARAMETER = 3
ERROR_NO_GUI = 4
others = 5.

IF SY-SUBRC <> 0.
RAISE CNTL_ERROR.
ENDIF.

IF COUNT = 0.
* Does not exist
RESULT = ABAP_FALSE.
FSIZE = 0.
ELSE.
* Does exist
RESULT = ABAP_TRUE.
READ FILETAB INDEX 1 INTO FILEREC.
FSIZE = FILEREC-FILELENGTH.
ENDIF.

Espero te sean de ayuda, ya nos contarás.
Un saludo :) .