<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Genaues Auslesen der Größe einer Datei]]></title><description><![CDATA[<p>Hi leute,<br />
ich hab da so ein kleines Problem. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
<p>Ich brauch für mein Programm die EXAKTE grösse einer Bitmap-Datei.<br />
Die Größe aus dem Header ist unbrauchbar, da sie ungenau ist!!!</p>
<p>Hier ist mein Versuch:</p>
<pre><code class="language-cpp">do
{
 Zaehler++;
 cout&lt;&lt;Zaehler;
}while(feof(FILE *Datei)==0);
</code></pre>
<p>Danke im Voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176682/genaues-auslesen-der-größe-einer-datei</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 15:04:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176682.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Mar 2007 16:39:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 16:39:41 GMT]]></title><description><![CDATA[<p>Hi leute,<br />
ich hab da so ein kleines Problem. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
<p>Ich brauch für mein Programm die EXAKTE grösse einer Bitmap-Datei.<br />
Die Größe aus dem Header ist unbrauchbar, da sie ungenau ist!!!</p>
<p>Hier ist mein Versuch:</p>
<pre><code class="language-cpp">do
{
 Zaehler++;
 cout&lt;&lt;Zaehler;
}while(feof(FILE *Datei)==0);
</code></pre>
<p>Danke im Voraus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251260</guid><dc:creator><![CDATA[Hausmeister]]></dc:creator><pubDate>Fri, 23 Mar 2007 16:39:41 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 17:52:30 GMT]]></title><description><![CDATA[<p>Ich geb dir einen Tipp versuch es mal mit stat ;).</p>
<p>Ich hätte auch ein kleines Problem das hier gut reinpasst. Ich möchte mit einem Konsolenbefehl eine Datei löschen. In der Borland Hilfe find ich nur Befehle für Anwendungen mit grafischer Oberfläche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251317</guid><dc:creator><![CDATA[bethrezen]]></dc:creator><pubDate>Fri, 23 Mar 2007 17:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 17:56:49 GMT]]></title><description><![CDATA[<p>ok, danke....ich versuchs mal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251319</guid><dc:creator><![CDATA[Hausmeister]]></dc:creator><pubDate>Fri, 23 Mar 2007 17:56:49 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 18:01:30 GMT]]></title><description><![CDATA[<p>bethrezen schrieb:</p>
<blockquote>
<p>Ich hätte auch ein kleines Problem das hier gut reinpasst. Ich möchte mit einem Konsolenbefehl eine Datei löschen. In der Borland Hilfe find ich nur Befehle für Anwendungen mit grafischer Oberfläche.</p>
</blockquote>
<p>Die Standardlibrary liefert dir remove(), allerdings empfehle ich bei so OS-abhängigen Befehlen immer die OS-API. Ich gehe mal schroff von Windows aus und empfehle daher DeleteFile() aus der WinAPI.</p>
<p>Dass solche Dateioperationen nur in Zusammenhang mit GUI-Programmen zur Verfügung stehen, kann ich mir nicht vorstellen.</p>
<p>Einen vernünftigen Weg die Dateigröße mit Hilfe der Standard-Library auszulesen ist mir bisher auch noch nicht untergekommen. In der WinAPI findet sich das sehr brauchbare GetFileSize().</p>
<p>MfG SideWinder</p>
<p>BTW: fstream ist ganz allgemein wieder mal ein Beispiel aus der C++-Standard-Bibliothek das absolut unbrauchbar ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251323</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Fri, 23 Mar 2007 18:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 18:07:09 GMT]]></title><description><![CDATA[<p>das problem ist, dass die stl keine file klasse kennt wie es sie in java gibt, sondern nur den stream.</p>
<p><a href="http://www.codeproject.com/file/filesize.asp" rel="nofollow">http://www.codeproject.com/file/filesize.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251326</guid><dc:creator><![CDATA[stimmt]]></dc:creator><pubDate>Fri, 23 Mar 2007 18:07:09 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 21:16:57 GMT]]></title><description><![CDATA[<p>naja zum thema filesize habe ich eben dieses stat gefunden.</p>
<p>Mit</p>
<pre><code class="language-cpp">struct stat statbuf;
stat(&quot;dateiname&quot;,&amp;statbuf);
cout &lt;&lt; statbuf.st_size;
</code></pre>
<p>kriegt man die filesize eigentlich ziemlich genau raus.</p>
<p>Warum würdest du mir das remove() nicht empfehlen, löscht ja die dateien auch.</p>
<p>///edit: sry hab den link zu spät gesehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251409</guid><dc:creator><![CDATA[bethrezen]]></dc:creator><pubDate>Fri, 23 Mar 2007 21:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 21:28:22 GMT]]></title><description><![CDATA[<p>Hausmeister schrieb:</p>
<blockquote>
<p>Ich brauch für mein Programm die EXAKTE grösse einer Bitmap-Datei.</p>
</blockquote>
<p>Wenn man nur auf Funktionen aus dem Standard zurückgreift, sollte es so gehen:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;

int main()
{
    using namespace std;
    ifstream file( &quot;C:/Datei.txt&quot; );
    if( file.seekg( 0, std::ios_base::end ) )
        cout &lt;&lt; &quot;Dateigroesse: &quot; &lt;&lt; file.tellg() &lt;&lt; &quot; Zeichen&quot; &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251421</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 23 Mar 2007 21:28:22 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 22:53:30 GMT]]></title><description><![CDATA[<p>Schaut euch lieber boost::filesystem an. Das ist portabel, gutes C++ und kommt vielleicht in C++0x (oder ist das nicht sogar im TR1 so aufgenommen?)</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7393">@Werner</a><br />
Deine Lösung funktioniert nicht garantiert. Auf Betriebssystemen, die Text- und Binär-Modus unterscheiden, kann es glaube ich im Binär-Modus zu Problemen kommen.</p>
<p>SideWinder schrieb:</p>
<blockquote>
<p>Die Standardlibrary liefert dir remove(), allerdings empfehle ich bei so OS-abhängigen Befehlen immer die OS-API.</p>
</blockquote>
<p>Befehlen? Und warum kein std::remove?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251450</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Fri, 23 Mar 2007 22:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Fri, 23 Mar 2007 23:01:06 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7393">@Werner</a>: Gab hier schonmal einen Thread, dass bei deinem Snippet Probleme auftreten können. Hab den Link aber leider nicht mehr, müsste &quot;man&quot; suchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Boost ist wahrscheinlich eine gute Idee.</p>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Befehlen? Und warum kein std::remove?</p>
</blockquote>
<p>Ist irgendwie sehr C-like im Fehlerfahll eine globale Variable abzufragen. Übernimmt einen Pfad, sollte OS-unabhängig sein, führt aber afaik keine /\-Änderungen durch, man ist also nur am Papier unabhängig und programmiert sich in Probleme.</p>
<p>Keine Ahnung warum überhaupt soviele C-Funktionen in C++ übernommen wurden. Warum gibts keine Date/Time-Klassen in der Standard-Bibliothek? Warum muss ich Dateien über Funktionen löschen, Dateien funktioniert aber über Klassen?</p>
<p>Ich suche verzweifelt nach Hintergrundartikeln zu diesem Debakel, also falls jemand gute Links hat &quot;Warum und wieso&quot; wäre ich sehr dankbar.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251451</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Fri, 23 Mar 2007 23:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 01:58:03 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Befehlen? Und warum kein std::remove?</p>
</blockquote>
<p>Ist irgendwie sehr C-like im Fehlerfahll eine globale Variable abzufragen. Übernimmt einen Pfad, sollte OS-unabhängig sein, führt aber afaik keine /\-Änderungen durch, man ist also nur am Papier unabhängig und programmiert sich in Probleme.</p>
</blockquote>
<p>Daher schlägst du eine sehr OS-Abhängige C-API vor, um das Problem zu lösen?</p>
<p>Wie würdest du remove über eine Klasse lösen? Dafür ist doch eine Funktion vollkommen in Ordnung. Auch boost::filesystem macht das mittels einer Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251481</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sat, 24 Mar 2007 01:58:03 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 04:01:34 GMT]]></title><description><![CDATA[<p>Die Java <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html" rel="nofollow">File</a> Klasse ist eigentlich ganz gut. Hat zwar auch Probleme (es gibt nur setReadOnly und keinen Weg zurück), aber sowas ähnliches in C++ std wäre schon gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251485</guid><dc:creator><![CDATA[guckstdu]]></dc:creator><pubDate>Sat, 24 Mar 2007 04:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 10:57:10 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>Daher schlägst du eine sehr OS-Abhängige C-API vor, um das Problem zu lösen?</p>
</blockquote>
<p>Dann springt die Abhängigkeit wenigstens ins Gesicht. Aber Boost scheint mir in dem Fall sogar noch geeigneter zu sein.</p>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Wie würdest du remove über eine Klasse lösen? Dafür ist doch eine Funktion vollkommen in Ordnung. Auch boost::filesystem macht das mittels einer Funktion.</p>
</blockquote>
<p>Mein Liebling wäre wohl etwas in diese Richtung:</p>
<pre><code class="language-cpp">List&lt;File&gt; files = ApplicationDirectory.toFile().find(&quot;*.log&quot;);

foreach(File file : files)
    try { file.delete(); } catch (Exception ex) { log(ex); }
</code></pre>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251540</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 24 Mar 2007 10:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 14:45:06 GMT]]></title><description><![CDATA[<p>guckstdu schrieb:</p>
<blockquote>
<p>Die Java <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html" rel="nofollow">File</a> Klasse ist eigentlich ganz gut. Hat zwar auch Probleme (es gibt nur setReadOnly und keinen Weg zurück), aber sowas ähnliches in C++ std wäre schon gut.</p>
</blockquote>
<p>Da finde ich die Lösung von boost::filesystem besser. Ein Pfad ist eben nicht direkt eine Datei...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251653</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sat, 24 Mar 2007 14:45:06 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 15:13:27 GMT]]></title><description><![CDATA[<p>ja, File ist auch für directories da</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251669</guid><dc:creator><![CDATA[guckstdu]]></dc:creator><pubDate>Sat, 24 Mar 2007 15:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 16:59:20 GMT]]></title><description><![CDATA[<p>guckstdu schrieb:</p>
<blockquote>
<p>ja, File ist auch für directories da</p>
</blockquote>
<p>äh lol? Ne, so was möchte ich nicht in std:: haben. Da ist boost::filesystem durchdachter imho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251736</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sat, 24 Mar 2007 16:59:20 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 17:07:52 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>äh lol? Ne, so was möchte ich nicht in std:: haben. Da ist boost::filesystem durchdachter imho</p>
</blockquote>
<p>Ist ja auch sehr abwegig ein Verzeichnis als eine Datei zu behandeln, auf die Idee kommt in der Wirklichkeit fast niemand <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251742</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 24 Mar 2007 17:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 17:28:21 GMT]]></title><description><![CDATA[<p>du musst zwischen dem Inhalt der Datei (dafür gibts streams und so) und der Datei im filessystem unterscheiden. da ist sie fast wie ein verzeichnis und es wäre doch viel umständlicher für verzeichnisse und files unterschiedliche klassen/funktionen, für die gleichen operationen (isHidden, exists,...), zu haben. Man könnte noch eine Vererbungshierarchie einbauen, aber das macht das arbeiten auch nicht einfacher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251760</guid><dc:creator><![CDATA[guckstdu]]></dc:creator><pubDate>Sat, 24 Mar 2007 17:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sat, 24 Mar 2007 23:45:43 GMT]]></title><description><![CDATA[<p>Hausmeister schrieb:</p>
<blockquote>
<p>Ich brauch für mein Programm die EXAKTE grösse einer Bitmap-Datei.</p>
</blockquote>
<pre><code class="language-cpp">#include &lt;fstream&gt;

int main ()
{
    using namespace std;

    ifstream ein (&quot;c:\\bitmap.bmp&quot;, ios_base::ate);
    streamoff len = ein.tellg ();
    ein.close ();
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251981</guid><dc:creator><![CDATA[exakt]]></dc:creator><pubDate>Sat, 24 Mar 2007 23:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to Genaues Auslesen der Größe einer Datei on Sun, 25 Mar 2007 00:47:39 GMT]]></title><description><![CDATA[<p>guckstdu schrieb:</p>
<blockquote>
<p>du musst zwischen dem Inhalt der Datei (dafür gibts streams und so) und der Datei im filessystem unterscheiden. da ist sie fast wie ein verzeichnis und es wäre doch viel umständlicher für verzeichnisse und files unterschiedliche klassen/funktionen, für die gleichen operationen (isHidden, exists,...), zu haben. Man könnte noch eine Vererbungshierarchie einbauen, aber das macht das arbeiten auch nicht einfacher.</p>
</blockquote>
<p>Wäre der Klassenname Pfad da nicht besser als Datei? Wie gesagt, schau dir boost::filesystem an, das sieht durchdachter aus, als das Java Zeugs.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252005</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:47:39 GMT</pubDate></item></channel></rss>