FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como capturo el tamaño de un directorio
Quisiera saber como capturo el tamaño de un directorio.
|
#2
|
||||
|
||||
¿Qué entiendes por tamaño de un directorio? Porque podemos estar hablando de la longitud de su nombre o de los archivos que contiene.
// Saludos |
#3
|
|||
|
|||
Tamaño en disco
Me refiero al tamaño en disco que tiene el directorio, incluyendo los subdirectorios y archivos. Ejemplo quiero saber cuanto tamaño (kb,Gb) tiene el directorio c:\windows
|
#4
|
||||
|
||||
Segun el truco 351 de trucomania es asi:
Si lo asignas a Caption como esta en la funcion aprecera en la barra de titulo del formulario. Nota: Por favor no vuelvas a repetir hilos. espero te sirva .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#5
|
||||
|
||||
He movido este hilo a API de Windows porque Windows no era la mejor ubicación para una pregunta como esta.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#6
|
|||
|
|||
Hola:
Disculpen por colocar dos hilos. Muchas gracias por la rutina me esta funcionando muy bien. Lo unico es que hay que hacer una anotación. Cuando hay directorios con tamaño que un Integer no soporta tiene problemas. dir.Size es de tipo Integer, hay que tenerlo en cuenta. gracias |
#7
|
||||
|
||||
Cita:
Otra cosa es que el tipo TSearchRec tiene un campo FindData que es un record tal como lo define la API de Windows. Ahí encontrarás que hay dos campos de tipo DWord para el tamaño del archivo, nFileSizeHigh y nFileSizeLow con los que, en conjunto, podrías leer enteros hasta de 64 bits. Dado que FindFirst y FindNext usan las rutinas correspondientes de la API, FindFirstFile y FindNextFile, es de suponerse que ahí encontrarás el valor correcto. // Saludos |
#8
|
||||
|
||||
en concreto, el tamaño exacto es:
nFileSizeHigh * MAXDWORD + nFileSizeLow; PD: MAXDWORD es una constante de sysutils. El resultado es un Int64. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#9
|
||||
|
||||
Cita:
Cita:
nFileSizeHigh * MAXDWORD + nFileSizeLow todos los operandos son integer así que creo que cae en el caso señalado. Supongo, sin probarlo, que tendría que ser algo como: Int64(nFileSizeHigh) * MAXDWORD + nFileSizeLow // Saludos |
#10
|
||||
|
||||
Como has visto mi mensaje era bastante escueto, solo presentaba la fórmula, que no es nada obvio deducirla; el resto son detalles, que dicho sea de paso quedan aclarados por tí
saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
|