Tamaño de un fichero de más de 1Gb

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • pierre
    Junior Member
    • may
    • 1

    #1

    Tamaño de un fichero de más de 1Gb

    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
    Administrator
    • feb
    • 503

    #2
    Hola Pierre,

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

    Aqui tienes unos ejemplos.

    Código:
    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

    Código:
    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&#225;s.
    Un saludo .
    Si precisas una mano, recuerda que yo tengo dos.

    Comentario

    Trabajando...