• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

LogicBox

[C++] Ajuda: Como saber o tamanho de um ficheiro txt que criei?

7 mensagens neste tópico

Boas

E uma duvida noob mas pronto :)

Como e que consigo saber o tamanho de um ficheiro em txt que criei? um tipo de "sizeof"

Obrigado :D

Hasta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em Unix podemos usar a função 'stat'.

struct stat s;
int size;

if(stat("file.txt",&s)==0)
  size=s.st_size;

isto é C!!!

não sei se existe alguma função em C++ mais adequada a este fim...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Desculpa a demora a responder :cheesygrin:

Não consegui utilizar essa função :P

Obrigado na mesma!

Hasta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não consegui utilizar essa função :cheesygrin:

Obrigado na mesma!

Hasta

porquê?

estás em Unix ou em windows?

se estiveres em Unix devia funcionar.

PS: é necessário colocar os includes

#include <sys/types.h>

#include <sys/stat.h>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uma versão mais portável (entenda-se que ainda assim não é ansi) :

#include <fstream>

int FileSize(const char* sFileName){
    std::ifstream f;
    f.open(sFileName, std::ios_base::binary | std::ios_base::in);
    if (!f.good() || f.eof() || !f.is_open()){
        return 0;
    }
    f.seekg(0, std::ios_base::beg);
    std::ifstream::pos_type begin_pos = f.tellg();
    f.seekg(0, std::ios_base::end);
   
     return static_cast<int>(f.tellg() - begin_pos);
}

isto falha se o tamanho do ficheiro for maior que o máximo número que um int pode ter

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Não tenho dito muito tempo para vir aqui mas agradeço a ajuda :):D

Hasta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora