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