Calcular tamaño de un archivo.txt

Iniciado por itzg3, 4 Diciembre 2010, 23:43 PM

0 Miembros y 1 Visitante están viendo este tema.

itzg3

Hola a todos,..... quisiera saber como puedo calcular el tamaño de un archivo en C++, es que quiero fragmentar mi diccionario de palabras en, digamos de 1Gb cada parte. Porque al hacerlo todo en 1 pesa 20 Gb y poreso quiero hacer esto.
Para no tener que esperar 1 año encendida mi pc ;D


Salu2 y gracias  ;)

JuszR

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]

winroot

Buenas!
Si es solo para windows, puedes usar GetFileSize.
No tengo idea si boost tiene algo para sacar el size de un fichero ^^.
Pero, probablemente si.
Saludos
Mi blog sobre programación y seguridad informática:
http://win-root.blogspot.com

itzg3

#3
Gracias, pero otra pregunta, ¿se puede usar una  funcion API de windows como GetFileSize, MessageBox o cualquier otra sin usar la funcion winmain, solo con main?
Algún ejemplito de codigo por favor.

JuszR

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]

winroot

#5
Cita de: itzg3 en  7 Diciembre 2010, 02:40 AM
Gracias, pero otra pregunta, ¿se puede usar una  funcion API de windows como GetFileSize, MessageBox o cualquier otra sin usar la funcion winmain, solo con main?
Algún ejemplito de codigo por favor.
Buenas!
Si, se puede.
Digamos que main se usa para la consola, y winmain para gui (menúes,botones,controles,etc)
De todos modos, aquí hay una manera de hacerlo utlizando fstream,
http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/65034b81-db99-43e8-9a33-289c21314562
Código (cpp) [Seleccionar]

 ifstream InFile;
 int InFilesize;
InFile.open(Filename, ios_base::in);
if (!InFile.is_open()) {
 cerr << "Error opening file\n";
 return;
 }
InFile.seekg(0, ios::end); // To get file size
InFilesize = static_cast <int> (InFile.tellg()); 


Saludos
Mi blog sobre programación y seguridad informática:
http://win-root.blogspot.com