Visual Basic - Tamaño de un archivo.

Life is soft - evento anual de software empresarial
 
Vista:

Tamaño de un archivo.

Publicado por Christian (675 intervenciones) el 08/02/2005 19:14:14
Holas a todos, alguien sabe como obtener mediante codigo visual basic el tamaño de un archivo o documento?? (mb o kb), me es urgente si alguien me puede ayudar, Please. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tamaño de un archivo.

Publicado por Benjo (679 intervenciones) el 08/02/2005 22:38:48
'Utilizando las APIS, esta es una de las formas de obtener el size de un archivo.

Const GENERIC_READ = &H80000000
Const FILE_SHARE_READ = &H1
Const OPEN_EXISTING = 3
Const FILE_TYPE_CHAR = &H2
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function GetFileSizeEx Lib "kernel32" (ByVal hFile As Long, lpFileSize As Currency) As Boolean
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub command1_click()
Dim hFile As Long, nSize As Currency
hFile = CreateFile("c:\SIVI_final.exe", GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, ByVal 0&, ByVal 0&)
GetFileSizeEx hFile, nSize
CloseHandle hFile
MsgBox "Size:" + Str$(nSize * 10000) + " bytes"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tamaño de un archivo.

Publicado por Christian (675 intervenciones) el 09/02/2005 16:37:06
Benjo te agradezco por tu respuesta pero en la sentencia : hFile = CreateFile("c:\SIVI_final.exe", GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, ByVal 0&, ByVal 0&)
siempre me devuelve -1 y al multiplicarlo por 10000 siempre me devuelve 0, no se cual es la razón derepente falta algo ayudame porfavor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tamaño de un archivo.

Publicado por Benjo (679 intervenciones) el 09/02/2005 20:57:24
Chistian, no lo tomes a mal, pero en un Foro, tenés que tener en cuenta que todos ponemos ejemplos con documentos con los que contamos, en mi caso el archivo "c:\SIVI_final.exe" existe en la Raíz C: pero como no lo encuentra en tu disco, genera el error. Aunque la funciòn sea CreateFile, el parámtro OPEN_EXISTING indica que se va a abrir un archivo existente. Cuando no lo encuentra genera un error.
Vos deberías reemplazar el archivo SIVI_final.exe por el autoxec.bat o el command.com, como vos quieras, pero que exista.
Si el código que te ponen en el post, vos lo copias y pegas y esperás que funcione mágicamente, vas perdido, Primero porque en el 80% de los casos tenés que adecuarlo a tu computadora y a tuis archivos, y segundo porque nunca vas a saber exactamenbte como funciona y porque si sólo copias y pegás.
Es sólo un consejo. Te repito, no lo tomes a mal.
Mucha suerte con tu código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tamaño de un archivo.

Publicado por Christian (675 intervenciones) el 09/02/2005 21:34:28
No benjo agradezco tu respuesta pero no fue eso, lo que paso es que no habia declarado public los Const que tenia tu codigo, porsupuesto se que en la vida va funcionar un codigo el cual me mandan con otra ruta de un archivo y como tu logica solo devuelve byte la converti para que me devolviera kilobytes, agradezco de ante mano tus comentarios, pero creo que fuiste un poco iluso al pensar que iba a ser eso, no lo vayas a tomar mal tampoco ok. bye. saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Touchê

Publicado por Anomino (1 intervención) el 09/02/2005 21:57:57
Touchê
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar