• Lunes 23 de Diciembre de 2024, 19:36

Autor Tema:  ¿como Saber El Tamaño De Un Archivo?  (Leído 1019 veces)

roxiii

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
¿como Saber El Tamaño De Un Archivo?
« en: Sábado 17 de Abril de 2004, 02:52 »
0
hola, y un saludo a todos los del foro,  deseo saber como puedo obtener el tamaño en bytes de un archivo desde codigo, lo que deseo hacer es averiguar si lo han modificado desde la ultima vez que se guardo, gradias por su ayuda...

 ;)

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: ¿como Saber El Tamaño De Un Archivo?
« Respuesta #1 en: Sábado 17 de Abril de 2004, 11:40 »
0
Hola roxiii.

Puedes usar una función de este estilo.

Código: Text
  1.  
  2. Option Explicit
  3. Private Const INVALID_HANDLE_VALUE = -1
  4. Private Type FILETIME
  5.     dwLowDateTime As Long
  6.     dwHighDateTime As Long
  7. End Type
  8. Private Type WIN32_FIND_DATA
  9.     dwFileAttributes As Long
  10.     ftCreationTime As FILETIME
  11.     ftLastAccessTime As FILETIME
  12.     ftLastWriteTime As FILETIME
  13.     nFileSizeHigh As Long
  14.     nFileSizeLow As Long
  15.     dwReserved0 As Long
  16.     dwReserved1 As Long
  17.     cFileName As String * MAX_PATH
  18.     cAlternate As String * 14
  19. End Type
  20. Private Declare Function FindFirstFile Lib "Kernel32.dll" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  21. Private Declare Function FindClose Lib "Kernel32.dll" (ByVal hFindFile As Long) As Long
  22.  
  23. Public Function GetFileSizeKb(ByVal File As String) As Double
  24.     Dim lngFile As Long
  25.     Dim f As WIN32_FIND_DATA
  26.     lngFile = FindFirstFile(File & Chr(0), f)
  27.     If lngFile = INVALID_HANDLE_VALUE Then Exit Function
  28.     GetFileSizeKb = f.nFileSizeLow / 1024
  29.     FindClose (lngFile)
  30. End Function
  31.  
  32.  

Acabo de fijarme que quieres el tamaño en bytes, la función lo da en Kb. Por supuesto que para arreglarlo tienes que quitar la división por 1024.

Suerte.

roxiii

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: ¿como Saber El Tamaño De Un Archivo?
« Respuesta #2 en: Martes 20 de Abril de 2004, 23:42 »
0
Hola Brroz, ha funcionado muy bien, solo me queda una duda, me sale un error donde dice que el valor debe ser una constante y se refiere a MAX_PATH, que valor deberia tener esa variable, yo le puse cualquier valor y corre bien, pero quisiera saber de donde vienen esa constante, y por todo muchas
 :gracias:

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: ¿como Saber El Tamaño De Un Archivo?
« Respuesta #3 en: Miércoles 21 de Abril de 2004, 09:01 »
0
Hola roxiii.

Disculpa el gazapo...
Código: Text
  1.  
  2. Private Const MAX_PATH = 260
  3.  
  4.  
Tamaño máximo para la vía de acceso.

Chao.