Ver Mensaje Individual
  #1  
Antiguo 13-04-2006
Lapiz_y_Papel Lapiz_y_Papel is offline
Registrado
 
Registrado: abr 2006
Posts: 9
Reputación: 0
Lapiz_y_Papel Va por buen camino
Propiedades de Ficheros

Antes de nada saludos a todos.
Y ahora al tema:

Me estoy iniciando en Delphi,(un poco de paciencia) y en estos momentos estoy con el tema de ficheros. Estoy escribiendo un programa en el que pretendo obtener las propiedades de un fichero que he seleccionado de un Tshelllistview linkado a un Tshelltreeview; obtener la ruta y extraer el nombre y la extension no me da problemas; lo tengo cuando deseo obtener su tamaño; el código que utilizo es el siguiente:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  security:tsecurityattributes;
  hfile: integer;
  fileinfo: tbyhandlefileinformation;
  intermediate: tfiletime;
  systemtime: tsystemtime;
  filetype: dword;
  ampm:string;
begin
  Security.nLength:=SizeOf(TsecurityAttributes);
  Security.bInheritHandle:=FALSE;
  Hfile:=CreateFilePCharExtractFilenameShelllistView1.SelectedFolder.PathName)),
  generic_read,0,@security,Open_existing,file_attribute_normal,0);
  Form1.Enabled:=False;
  Form2.Visible:=True;
  Form2.Enabled:=True;
  Form2.Label2.Caption:=(ShellListView1.SelectedFolder.PathName);
  Form2.Label5.Caption:=ExtractFileName(ShellListView1.SelectedFolder.PathName);
  Form2.Label6.Caption:=ExtractFileExt(ShellListView1.SelectedFolder.PathName);

  Form2.Edit1.Text:=inttostr(getfilesize(hfile,nil));
Esta última línea es la que me da el problema: siempre obtengo el mismo tamaño de archivo:4294967295 independientemente del tamaño que tenga el archivo seleccionado. Tengo entendido que el registro TbyHandleFileinformation posee dos palabras:
nFileSizeHigh y nFilesizeLow del tipo DWORD pero no tengo ni idea de como manejarlas y ni mucho menos lograr un tipo entero que me de el tamaño real del fichero.

¿Alguien puede ayudarme con esto?
¿que otras formas existen de obtener las propiedades de un fichero?

Gracias de antemano.

Nota: utilizo la version de Delphi 2006

Última edición por dec fecha: 13-04-2006 a las 21:13:03.
Responder Con Cita