---
title: "Storleken på en fil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/56374-storleken-på-en-fil"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "zmodem"
published: "2002-10-18T07:22:31.000Z"
updated: "2002-10-18T16:34:03.000Z"
replies: 4
views: 202
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/56374-storleken-på-en-fil"
---

# Storleken på en fil

## #1 — zmodem, 2002-10-18T07:22Z

Hur får man reda på storleken på en binär fil utan att loopa igen hela grejen och räkna? Finns det nåt smidigt sätt jag inte känner till?

Permalänk: https://www.webforum.nu/p/56374

## #2 — Beatbox, 2002-10-18T08:19Z

Det går väl att sätta filpekaren till sluten och den metoden returnerar var i filen den befinner sig.

Permalänk: https://www.webforum.nu/p/826689

## #3 — zmodem, 2002-10-18T14:47Z

alltså, att jag ska sätta den till slutet genom att skriva

seekg(fin, ios_base::end, ios_base::beg);

eller hurdå? menar du att seekg-funktionen skulle returnera nåt värde eller?

Permalänk: https://www.webforum.nu/p/827057

## #4 — zmodem, 2002-10-18T14:56Z

Hittade denhär kodsnutten på nätet...

\---
/\* Include files needed \*/
 \# include \<stdio.h\>

 /\* The function \*/

 unsigned long filesizeof(FILE \*stream){

   long curpos, length;

   /\* Save the current position of the file pointer \*/
   curpos = ftell(stream);

   /\* Go to the end of file \*/
   fseek(stream, 0L, SEEK_END);

   /\* The length is the position of the pointer \*/
   length = ftell(stream);

   /\* Set the pointer to the old position \*/
   fseek(stream, curpos, SEEK_SET);

   /\* Return the length \*/
   return length;

 }
\---

det kanske var så du menade? men hur gör man motsvarande i C++ utan att includa \<stdio.h\>? vad heter alltså motsvarigheten till ftell()?

Permalänk: https://www.webforum.nu/p/827068

## #5 — zmodem, 2002-10-18T16:34Z

Ok, problemet är löst, min bok hade glömt att nämna en smidig metod som heter tellg() och finns i ifstream-objekt. såhär ser min funktion för att ta reda på filstorleken ut:

unsigned long filesize (string filename) {
	unsigned long fs = 0;
	ifstream fin (filename.c_str());

	if (!fin.is_open())
		return 0;

	fin.seekg(0, ios_base::end);
	fs = fin.tellg();
	fin.close();

	return fs;
}

Permalänk: https://www.webforum.nu/p/827155

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/56374-storleken-på-en-fil
