<?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[Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten]]></title><description><![CDATA[<p>Hallo, ich möcht alle Dateinamen und Verzeichnissnamen auflisten die sich in einem angegeben Suchpfad befinden. Es sollen nicht nur alle direkt im Verzeichniss befindlichen Einträge, sondern auch alles was in tieferen Ebenen ist ausgegeben werden. Ich hab schon mal angefangen mit FindFirstFile und FindNextFile mich in die unterste Ebene durchzu hangeln indem in überprüft habe ob der gefundene Eintrag ein Verzeichniss ist. Das Problem ist nun folgendes wie komme ich wieder rekursive nach oben. Meine Überlegung ist nun folgende: ich lege mir ein array von Filehandles an und speichere jeden Schritt nach unten.</p>
<pre><code class="language-cpp">HANDLE		hFile[256];
</code></pre>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox178923" checked="true" /><label for="checkbox178923">den Handle des Pfades über den ich nach unten gegangen bin, auf dem Rückweg nach oben schließe ich den Handle und sezte hFile[x] = 0. Über eine Zähler (x) weiß ich dann immer wo ich bin. Meine Frage nun lautet: ist diese Vorgehensweise sinnvoll und welchen Wert nehme ich als Größe für das Array? Anmerken möchte ich noch, daß ich nur ansi-c und winapi verwende.</label></div></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230866/verzeichnissinhalt-mit-allen-dateien-und-unterordnern-auflisten</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 22:00:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230866.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Jan 2009 11:55:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 11:55:27 GMT]]></title><description><![CDATA[<p>Hallo, ich möcht alle Dateinamen und Verzeichnissnamen auflisten die sich in einem angegeben Suchpfad befinden. Es sollen nicht nur alle direkt im Verzeichniss befindlichen Einträge, sondern auch alles was in tieferen Ebenen ist ausgegeben werden. Ich hab schon mal angefangen mit FindFirstFile und FindNextFile mich in die unterste Ebene durchzu hangeln indem in überprüft habe ob der gefundene Eintrag ein Verzeichniss ist. Das Problem ist nun folgendes wie komme ich wieder rekursive nach oben. Meine Überlegung ist nun folgende: ich lege mir ein array von Filehandles an und speichere jeden Schritt nach unten.</p>
<pre><code class="language-cpp">HANDLE		hFile[256];
</code></pre>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox178923" checked="true" /><label for="checkbox178923">den Handle des Pfades über den ich nach unten gegangen bin, auf dem Rückweg nach oben schließe ich den Handle und sezte hFile[x] = 0. Über eine Zähler (x) weiß ich dann immer wo ich bin. Meine Frage nun lautet: ist diese Vorgehensweise sinnvoll und welchen Wert nehme ich als Größe für das Array? Anmerken möchte ich noch, daß ich nur ansi-c und winapi verwende.</label></div></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638715</guid><dc:creator><![CDATA[give me a tooltip]]></dc:creator><pubDate>Sat, 03 Jan 2009 11:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 12:15:25 GMT]]></title><description><![CDATA[<p>was? du rufst den code halt rekursiv auf und wenn ein unterverzeichnis fertig is kehrt die funktion zur nächst höheren ebene zurück. verstehe das prob iwie nich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638732</guid><dc:creator><![CDATA[Reflector Hector]]></dc:creator><pubDate>Sat, 03 Jan 2009 12:15:25 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 13:08:00 GMT]]></title><description><![CDATA[<p>give me a tooltip schrieb:</p>
<blockquote>
<p>Meine Überlegung ist nun folgende: ich lege mir ein array von Filehandles an und speichere jeden Schritt nach unten.</p>
<pre><code class="language-cpp">HANDLE		hFile[256];
</code></pre>
</blockquote>
<p>geht. aber du hast sicher ein schlechtes gewissen dabei.</p>
<p>ich löse das gerne mit imitierter rekursion.</p>
<pre><code class="language-cpp">queue nochZuMachen;
nochZuMachen.push(&quot;.&quot;);//oder C:/ oder wasauchimmer
while(!nochZuMachen.isEmpty)
{
   string current=nochZuMachen.pop();
   while(FindFirst und so)
   {
      if(datei)
         cout&lt;&lt;date.name&lt;&lt;endl;
      else
         if(dir.name!=&quot;.&quot; and dir.name!=&quot;..&quot;)
            nochZuMachen.push(current+&quot;/&quot;+dir.name);
   }
}
</code></pre>
<p>genial, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638763</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 03 Jan 2009 13:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 13:09:41 GMT]]></title><description><![CDATA[<p>give me a tooltip schrieb:</p>
<blockquote>
<pre><code class="language-cpp">HANDLE		hFile[256];
</code></pre>
</blockquote>
<p>aber kannst auch einfach pro rekursionsebene nur ein HANDLE hFile zu nehmen, denn die lebt sehr gut als lokale variable in der rekursiven funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638764</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 03 Jan 2009 13:09:41 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 13:10:34 GMT]]></title><description><![CDATA[<p>Reflector Hector schrieb:</p>
<blockquote>
<p>verstehe das prob iwie nich</p>
</blockquote>
<p>Das gewünscht Ziel habe ich ausreichend erklärt, einen mir bekannten Lösungsweg beschrieben und hierzu Fragen gestellt. Aber der einfachheithalber hier noch mal die Frage:</p>
<blockquote>
<p>ist diese Vorgehensweise sinnvoll und welchen Wert nehme ich als Größe für das Array? Anmerken möchte ich noch, daß ich nur ansi-c und winapi verwende</p>
</blockquote>
<p>Ich brauche keinen Code, den kann ich mir selbern schreiben, es geht rein um alternative und/oder sinnvolle Lösungen in Textform.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638765</guid><dc:creator><![CDATA[give me a tooltip]]></dc:creator><pubDate>Sat, 03 Jan 2009 13:10:34 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 13:14:16 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<pre><code class="language-cpp">queue nochZuMachen;
nochZuMachen.push(&quot;.&quot;);//oder C:/ oder wasauchimmer
while(!nochZuMachen.isEmpty)
{
   string current=nochZuMachen.pop();
   while(FindFirst und so)
   {
      if(datei)
         cout&lt;&lt;date.name&lt;&lt;endl;
      else
         if(dir.name!=&quot;.&quot; and dir.name!=&quot;..&quot;)
            nochZuMachen.push(current+&quot;/&quot;+dir.name);
   }
}
</code></pre>
<p>genial, oder?</p>
</blockquote>
<p>Sorry, ich kann echt nur plain-c und winapi programmieren, ich verstehe den Code nur bedingt, trotzdem danke für die Mühe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638768</guid><dc:creator><![CDATA[give me a tooltip]]></dc:creator><pubDate>Sat, 03 Jan 2009 13:14:16 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 13:18:43 GMT]]></title><description><![CDATA[<p>Ähm mein Beitrag 2x weiter oben war nicht an dich gerichtet <strong>volkard</strong>, also bitte nicht falsch verstehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638771</guid><dc:creator><![CDATA[give me a tooltip]]></dc:creator><pubDate>Sat, 03 Jan 2009 13:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 13:38:51 GMT]]></title><description><![CDATA[<p>give me a tooltip schrieb:</p>
<blockquote>
<p>Sorry, ich kann echt nur plain-c und winapi programmieren, ich verstehe den Code nur bedingt, trotzdem danke für die Mühe.</p>
</blockquote>
<p>klar, du hast keine klassen wue queue. das müßte man in c per hand nachprogrammieren.<br />
aber für dich isses viel einfachder, du machst es rekursiv mit lokalen variabllen.</p>
<p>schon wieder nicht ausprogrammiert, sondern nur als grobe planung, die fast wie C aussieht:</p>
<pre><code class="language-cpp">void list(char* name)
{
  HANDLE hFile;//lokal und deswegen pro ebene neu ohne obere ebenen kaputtzumachen
  FindFirstFile(hFile,name oder so
  while(nochDateienDa)
  {
      if(datei)
         printf(&quot;%s&quot;,date.name);
      else
         if(dir.name!=&quot;.&quot; and dir.name!=&quot;..&quot;)
         {
            char neu[MAX_PATH];
            strcpy(neu,name);
            strcat(neu,&quot;/&quot;);
            strcat(neu,dir.name);
            list(neu);//hier der tolle rekursive aufruf
         }
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1638784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638784</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 03 Jan 2009 13:38:51 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 17:14:25 GMT]]></title><description><![CDATA[<p>Danke volkard habe das Einlesen nun realisiert. Leider werden bei mir die Zeichen <strong>ä ö ü ß ° §</strong> falsch dargestellt, hat da jemand eine Lösung für mich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638905</guid><dc:creator><![CDATA[give me a tooltip]]></dc:creator><pubDate>Sat, 03 Jan 2009 17:14:25 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sat, 03 Jan 2009 20:23:11 GMT]]></title><description><![CDATA[<p>Poste mal deinen Code...wie soll man da sonst helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638995</guid><dc:creator><![CDATA[Shell32off]]></dc:creator><pubDate>Sat, 03 Jan 2009 20:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sun, 04 Jan 2009 00:27:14 GMT]]></title><description><![CDATA[<p>give me a tooltip schrieb:</p>
<blockquote>
<p>Danke volkard habe das Einlesen nun realisiert. Leider werden bei mir die Zeichen <strong>ä ö ü ß ° §</strong> falsch dargestellt, hat da jemand eine Lösung für mich?</p>
</blockquote>
<p>das ist ganz normal so. die konsole zeigt umlaute falsch an.<br />
ignoriere das am besten ganz einfach.<br />
willst du wirklich rightig anzeigen, ist vielleicht <a href="http://msdn.microsoft.com/de-de/library/ms647473(en-us,VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/de-de/library/ms647473(en-us,VS.85).aspx</a> ein guter suchstart.<br />
ich gehe davon aus, daß du das nur als vorbereitung machst, um ein prog zu schreiben, das die ganzen platte ausliest und *.mp3-dateien sucht und die alle nacheinander abspielt oder sowas. für das abspielen und so kannste die entsprechende abspielfunktion benutzen, und die klappt auch, obwohl der string in der konsone falsch angezeigt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639089</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 04 Jan 2009 00:27:14 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sun, 04 Jan 2009 08:14:08 GMT]]></title><description><![CDATA[<p>Moin, ich benutze die zlib.lib von Jean-loup Gailly und Mark Adler und schreib mir gerade eine dll die sowohl Dateien, Regestryeinträge als auch Datenpuffer/Strukturen von Programmen in eine Datei packen und entpacken kann. Meine Programmalgorithmen sind nun soweit fertig. Beim Paken von Verzeichnissen auf meiner HDD ist mir dann aufgelallen, das die Umlaute in den gezipten Dateien durch andere Zeichen ersetzt wurden. Zum Reinschauen in die Zip Datei habe ich dann den Total Commader benutzt. So jetzt kommt's aber, wenn ich meine Entpackroutine benutze wird die Datei wieder mit den richtigen Umlauten wiederhergestellt, passt dann ja eigentlich so weit. Ich habe für die Routinen zwei Testprogramme geschrieben, eines als Komandozeile und eines als Fensteranwendung. Die Textausgaben der Ent-/Packroutinen werden per sprintf in einen Buffer geschrieben, beim Konsolen Programm wird der Buffer per printf ausgegeben und die Umlaute falsch dargestellt, bei der Fensteranwendung wird der Buffer per SendMessage an den Eventhandler des Hauptprogrammes geschickt und dort ausgewertet und erstmal testhalber in einer Editbox dargestellt, und hier stimmen die Umlaute wieder, seltsam. Zu guter letzt habe ich mir mal eine und dieselbe Datei die Umlaute im Namen hat jeweils mit Total Commander und auch mit meiner Packroutine gepackt und per HEX Editor geöffnet und nach dem Eintrag für den Namen gesucht. In der Total Commander gepackten Datei sind die Umlaute richtig geschrieben und in der von meiner Packroutine erstellten Datei sind die Umlaute durch andere Zeichen ersetzt. Abschließend könnte man eigentlich sagen, wenn es mit der selbstprogammierten Ent-/Packroutine doch funktioniert, ist es ok, jedoch störrrt mich die Ausgabe in der Konsole und auch die fehlende Kombatibilität zu anderen Packprogrammen. Da ich nun schon so viel Zeit in die Erstellung der Routinen investiert habe, stört mich dieser Schönheitsfehler schon und ich würde ihn gerne Beseitigen. Ferner würde ich dieses Problem gerne in meinem Teil des Codes und nicht im Programmcode der zlib.lib (wo ich ja auch den Sourcecode besitze) lösen, da ich bei zukünftigen Änderungen der zlib nicht immer deren Code umschreiben will, sondern eine neu releaste zlib 1:1 in meinem Programm wieder verwenden möchte. <strong>Shell32off</strong> meinte ich ich solle mal etwas Code posten, ich denke das ist keine so gute Idee, weil das schon recht Seitenfüllend wäre. Für Interessierte: den Quellcode für die zlib.lib gibt es übrigens hier -&gt; <a href="http://zlib.net/" rel="nofollow">http://zlib.net/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639130</guid><dc:creator><![CDATA[give me a tooltip]]></dc:creator><pubDate>Sun, 04 Jan 2009 08:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sun, 04 Jan 2009 12:41:20 GMT]]></title><description><![CDATA[<p>Aua, das tut ja weh beim Lesen.<br />
Versuchs mal damit:</p>
<pre><code>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1639213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639213</guid><dc:creator><![CDATA[&#x5C;r&#x5C;n]]></dc:creator><pubDate>Sun, 04 Jan 2009 12:41:20 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnissinhalt mit allen Dateien und Unterordnern auflisten on Sun, 04 Jan 2009 13:36:18 GMT]]></title><description><![CDATA[<p>Danke volkard war ein guter Hinweis mit OemToChar und CharToOem.Ich habe meinen Code an den entsprechenden Stellen ergänzt und es scheint zu klappen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639234</guid><dc:creator><![CDATA[give me a tooltip]]></dc:creator><pubDate>Sun, 04 Jan 2009 13:36:18 GMT</pubDate></item></channel></rss>