Delphi - Saber el tamaño en bytes de un archivo

 
Vista:

Saber el tamaño en bytes de un archivo

Publicado por Roberto Garcia Garcia (5 intervenciones) el 11/04/2005 07:20:01
Hola, estoy haciendo un programa que genera cadenas de caracteres al azar, bueno no al azar, pero si genera cadenas de caracteres, muchas, muchisisimas, el archvio podria llegar a ocupar varios cientos de megas

entonces se me ocurrio la idea de tener una opcion para que el programa genere varios archivos de tantos kb, por ejemplo el usuario puede elejir que se generen todos los archivos de texto que sean necesarios pero de 500 kb cada uno y asi por el estilo, pero no he podido hacer una funcion que me devuelva el tamaño en bytes de un archivo, tenia la siguiente funcion que la baje de internet.

function tamanioA(nom:String):Dword;
var
FHandle: integer;
begin
FHandle := FileOpen(nom, 0);
try
Result := (getfilesize(FHandle,nil));
finally
FileClose(FHandle);
end;
end;

en mi programa la uso de esta forma

if tamanioA(narchivo) >= strtoint(edit1.text) *1024) then
cambiar de archivo

pero no hace nada, se supone que la funcion devuelve el tamaño de un archivo en byte, por eso el contenido de edit1 que es el tamaño maximo de kb por archivo lo multiplico por 1024

alguien sabe que esta fallando, o alguna otra sugerncia para obtener el tamaño de un archivo.

Gracias

Roberto Garcia
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:Saber el tamaño en bytes de un archivo

Publicado por Dr Juzam (821 intervenciones) el 11/04/2005 18:23:17
Seguramente, para poder contar el tamaño de un archivo debe estar guardado en el disco. Comprueba que el archivo está guardado cuando compruebas su tamaño.
Yo de todos modos he usado para determinar tamaños de archivo la función FileSize. No sé si tendrá algo que ver.
Suerte.
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:Saber el tamaño en bytes de un archivo

Publicado por gitano (4 intervenciones) el 11/04/2005 19:15:03
Roberto:

La función tamanioA te devuelve un DWORD y el strtoint un integer, por lo que en el if estás comparando dos cosas diferentes. Podrías probar, si el Edit1.text es mayor a 0, guardarla en un DWORD y uasarla en el if. Espero que funcione.
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

TAMAÑO DE ARCHIVO

Publicado por beosman (163 intervenciones) el 12/04/2005 12:11:01
Una de las formas de conocer el tamaño de un archivo es FileSize (como bien se ha dicho) pero si el archivo no es de bytes (es de registros) devuelve el número de registros. La mejor forma es utilizar la función FindFirst(...) de Windows donde se le pasa el nombre del archivo y una estructura de tipo TSearchRec. En dicha estructura irá el tamaño del archivo (en caso de que exista). Un saludo.

Diego :: beosman
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 ARCHIVO

Publicado por Roberto Garcia Garcia (5 intervenciones) el 13/04/2005 07:34:51
Ok, gracias por las respuestas, la primera forma nunca encontre como usarla, igual cambie todas las variables involucradas a word, pero descubri que el tamaño siempre devolvia el valor maximo de las variables de tipo Dword y esa murio por la paz.

Luego la segunda forma usando FindFirts, funciono pero a medias, ya que si me devolvia el tamaño del archivo en bytes, pero no se si es mi windows (ME) o que, pero cuando creaba el primer archivo, lo dejaba en 0 bytes, y tenia que actualizar la carpeta para que comprobara correctamente el tamaño del archivo, por ejemplo el archivo empezaba en 0 bytes, despues de un rato preionaba F5 y si el archivo era mayor que el criterio especificado, cambiaba de archivo, pero tenia que estar haciendo esto a cada rato, lo mas alejado de la automatizacion que requeria.

asi que mejor opte por dividir el archivo al llegar a tantas lineas de texto, y asi se quedara hasta que mejore un poco mas.
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

Saber el tamaño en bytes de un archivo

Publicado por Snip3r (1 intervención) el 06/04/2012 19:37:09
Muchas gracias por este aporte, me salvaste el día.
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