Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2013
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
Obtener tamaño de archivo con error

Hola amigos, estoy usando hace ya algun tiempo la siguiente funcion para obtener el tamaño de un archivo pero en un cliente que tiene instalado Windows server 2008 standard de 32 bits esta funcion debuelve una fecha:
Código Delphi [-]
function GetHugeFileSize(const Filename: TFileName): Int64;
var
  SearchRec: TSearchRec;
begin
  if FindFirst(Filename, faAnyFile, SearchRec) = 0 then
  begin
    Result := (Int64(SearchRec.FindData.nFileSizeHigh) shl 32)
               or SearchRec.FindData.nFileSizeLow;
    FindClose(SearchRec);
  end else
    Result := -1;
end;
Alguien tiene idea de que puede estar pasando?
Si existe otra forma de tomar el tamaño exacto de un archivo en una unidad de red comentenla.
Gracias.
Responder Con Cita
  #2  
Antiguo 20-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jars.

Proba si te funciona de este modo:
Código Delphi [-]
function GetFileSizeEx(hFile: THandle; var lpFileSize: Int64): BOOL; stdcall; external 'kernel32.dll';

function GetHugeFileSize(aFileName: TFileName): Int64;
var
  hnd : THandle;
begin
  hnd := CreateFile(PChar(aFileName),
                    GENERIC_READ,
                    0,
                    nil,
                    OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,
                    0);
  if not GetFileSizeEx(hnd, Result) then
    RaiseLastOSError;
end;

// Ejemplo de llamada:
...
begin
  ShowMessage(IntToStr(GetHugeFileSize('C:\...\Nombre_Archivo.Ext')));
end;
Minimum supported server Windows Server 2003 [desktop apps only] (GetFileSizeEx)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-05-2013
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 279
Poder: 21
jars Va por buen camino
Gracias ecfisa, ahora que lo mencionas, si en esa maquina lo ejecuto como aplicación funciona bien pero como servicio, que es como debe correr, me da el error.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener el tamaño de una carpeta jorgegetafe Varios 4 28-04-2010 17:25:51
Como obtener el tamaño de un archivo en delphi 7 kurono Varios 2 02-10-2007 09:58:21
Como Obtener tamaño de un Archivo onlytk Varios 2 20-11-2006 23:06:15
obtener tamaño de imagen Cosgaya PHP 3 08-07-2006 23:25:26
Obtener el Tamaño de un Archivo Viet OOP 1 09-09-2003 14:34:03


La franja horaria es GMT +2. Ahora son las 20:04:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi