Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2010
vivamotos vivamotos is offline
Miembro
 
Registrado: ago 2006
Posts: 150
Poder: 18
vivamotos Va por buen camino
C++ Obterner tamaño fichero grande

Buenos días,

Tengo una imagen de un disco duro que ocupta 80 Gb, pues bien, yo quisiera capturar ese tamaño en código pero siempre me da el valor 0, os adjunto mi código:

Código:
int __fastcall Get_Size(AnsiString path )
{
// #include <fstream>
FILE *pFile;

// get the file stream
pFile=fopen("\\\\192.168.66.59\\imagenes_pcs$\\PCS\\ALCW1002\\ALFREDO_201004262-00-00.mrimg","rb");

// get the file size
long curpos, length;
curpos = ftell(pFile);
fseek(pFile, 0L, SEEK_END);
length = ftell(pFile);
fseek(pFile, curpos, SEEK_SET);
// close stream and release buffer
fclose( pFile );

return length;
}
Con este código puedo saber el tamaño de ficheros pequeños pero los grandes no, que falla?
Responder Con Cita
  #2  
Antiguo 11-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Esa variable length, ¿de qué tipo es?, no veo la declaración, ¿dónde está?
Responder Con Cita
  #3  
Antiguo 12-06-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código:
__int64 GetFileSize(HANDLE hFile)
{
   DWORD hi;
   DWORD lo = GetFileSize(hFile, &hi);
   __int64 R = hi;
   R <<= 32;
   return R |= lo;
}
Saludos.
Responder Con Cita
  #4  
Antiguo 14-06-2010
vivamotos vivamotos is offline
Miembro
 
Registrado: ago 2006
Posts: 150
Poder: 18
vivamotos Va por buen camino
long

Es un long esta puesta miratelo bien,

El código de scafandra no lo entiendo ni lo veo como funciona, lo quisiera saber para c++ builder

Grácias.
Responder Con Cita
  #5  
Antiguo 14-06-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por vivamotos Ver Mensaje
...El código de scafandra no lo entiendo ni lo veo como funciona, lo quisiera saber para c++ builder...
...

Simplemente es el uso de la API GetFileSize en C++ concretamente Builder 5. ¿Lo has comopilado?

Saludos.
Responder Con Cita
  #6  
Antiguo 14-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por vivamotos Ver Mensaje
Es un long esta puesta miratelo bien [..]
Vaya despiste que tengo
Responder Con Cita
  #7  
Antiguo 15-06-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Por si esta implementación se entiende mejor:
Código:
__int64 _GetFileSize(HANDLE hFile)
{
    __int64 S;
    if (!GetFileSizeEx(hFile, (PLARGE_INTEGER)&S)) S=0;
    return S;
}
Saludos.
Responder Con Cita
  #8  
Antiguo 12-08-2010
kenychy kenychy is offline
Miembro
 
Registrado: ago 2010
Posts: 45
Poder: 0
kenychy Va por buen camino
hola tio, en que biblioteca se encuentra _int64
Responder Con Cita
  #9  
Antiguo 12-08-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
__int64

Saludos.
Responder Con Cita
  #10  
Antiguo 13-08-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Yo en Delphi uso esto, habría que traducirlo a C++

Código Delphi [-]
function FileSize(const FileName: string): Int64;
var
  sr: TSearchRec;
begin
  if FindFirst(FileName, faAnyFile, sr) = 0 then
    try
      Result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) +
                Int64(sr.FindData.nFileSizeLow);
    finally
      SysUtils.FindClose(sr);
    end
  else
    Result := -1;
end;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #11  
Antiguo 13-08-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Si...

Saludos.
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
detectar el cambio de tamano de un fichero locotenentul Varios 2 18-07-2008 20:55:32
'Tamaño de papel' en un fichero .RTF Tonio Varios 0 09-07-2007 00:01:47
Tamaño del Ejecutable muy grande Fralva Varios 4 08-06-2005 17:22:51
tamaño de un fichero remoto coulthard Internet 0 05-01-2005 19:58:37
Tamaño de Base Interbase Grande rogeriobeltran Conexión con bases de datos 0 12-03-2004 18:43:11


La franja horaria es GMT +2. Ahora son las 18:15:36.


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