PDA

Ver la Versión Completa : Tamaño de archivo


ckaki
20-03-2004, 17:32:20
Utilizo este código para obtener el tamaño de un archivo en bytes

Function TMainForm.byte(archivo:string):LongInt;
Var
Fichero: File;
Tamanyo: LongInt;
Begin
AssignFile(Fichero,archivo);
Reset(Fichero,1);
Tamanyo := FileSize(Fichero);
CloseFile(Fichero);
Result := Tamanyo;
end;

perso sucede que al estar en uso me da un error: Acceso denegado.

alguna idea

desde ya mil gracias

DarkByte
20-03-2004, 18:11:57
¿Cerrar el programa que está usando archivo?. :d como un dicho que apareció por los foros: si no puede sorprender con brillanteces, desconcierta con gilipolleces...

__cadetill
20-03-2004, 19:42:24
sacado de Trucomanía (ver truco 515)


procedure TForm1.Button1Click(Sender: TObject);
function cuantosbytes(archivo: string): string;
var
FHandle: integer;
begin
FHandle := FileOpen(archivo, 0);
try
Result := floattostr(getfilesize(FHandle,nil));
finally
FileClose(FHandle);
end;
end;
begin
Caption:=cuantosbytes('Mi_Archivo');
end;

roman
20-03-2004, 21:49:26
¿Cerrar el programa que está usando archivo

Creo que este no es el punto. Me parece que el error es que el archivo del cual intenta obtener el tamaño está siendo usado por otra aplicación. Fuera de estas circunstancias es pefectamente normal abrir el archivo para ver sus propiedades y luego cerrarlo.

Creo que incluso el método de cadetill dará problemas si el archivo ya se encuentra abierto en modo exclusivo.

// Saludos

__cadetill
20-03-2004, 22:28:51
Creo que incluso el método de cadetill dará problemas si el archivo ya se encuentra abierto en modo exclusivo.
En modo exclusivo no lo he probado, pero abierto sí que lo tenía en el momento de la prueba