Obtención del tamaño de un archivo

Para ello tenemos que introducir la unidad ShellApi

Uses ShellApi;

Llamamos a la función que hemos denominada Tamanyo(), ya que no es culpa nuestra que las eñes no puedan ser utilizadas.

Tamanyo(nombre_del_archivo);

Y que elaboramos de la siguiente forma:

Function Tamanyo (Archivo : String):Integer;

Var
   Busca : TsearchRec;
Begin
   if  FindFirst ( Archivo, faAnyFile,Busca)  = 0 then
      Result := Busca.size
   Else
      Result:=0;
End;

Donde hemos creado una variable « Busca » del tipo TsearchRec, que es una estructura que consta del atributo, fecha y hora, tamaño en bytes y nombre del archivo, por lo que el resultado de la función es la parte que nos interesa de esa estructura, Busca.Size.

FindFirst es una función que permite localizar ficheros en tiempo de ejecución, devolviendo 0 si la búsqueda ha sido correcta. Precisa tres parámetros, el nombre del archivo (que puede tener comodines * o ?) con su ruta. El segundo parámetro es el tipo de los archivos a localizar, por ejemplo, si nos interesase buscar simplemente directorios usaríamos faDirectory, si solo ficheros ocultos, pues faHidden, nosotros utilizamos en el ejemplo faAnyFile, porque acepta cualquier tipo de fichero. Y el tercero es una variable del tipo de la estructura mencionada.

Ponemos Result a 0 en el caso de una búsqueda infructuosa, ya que la función que hemos creado está devolviendo una variable de tipo integer.