<?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[Verzeichnisse rekursiv durchlaufen mit Borlandc++builder]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich versuche gerade ein Programm zu schreiben, daß alle Verezichnisse durchgeht und nach Textdateien sucht und diese anzeigt. Ich versuche durch meine Verzeichnisse rekursiv zu gehen. Ich rufe meine Funktion listen in der mein das Erste mal auf und dann wieder in der Funktion listen. Und beim ersten aufruf von der Funktion listen in der Funkton listen steht in der Variable &quot;HANDLE hSearch&quot; FFFFFF. Wenn er dann zu dieser Abfrage kommt:</p>
<pre><code class="language-cpp">if (hSearch == INVALID_HANDLE_VALUE)
    {
       return -1;
    }
</code></pre>
<p>geht er in die if-Anweisung und führt return -1 aus, was er nicht sollte, sonst geht er ja nicht in die anderen Verzeichnisse. <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="😞"
    /><br />
Hat jemand eine Idee was ich falsch mache?<br />
Schicke auch noch meinen Code mit.<br />
Vielen Dank im voraus<br />
Klaus</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;dir.h&gt;
#include &lt;stdio.h&gt;

using namespace
std; 

int listen(char *directory)
{
    WIN32_FIND_DATA FData;
    HANDLE hSearch = FindFirstFile(directory,&amp;FData);
    BOOL MoreFiles = FALSE;
    int cnt_dir = 0, cnt_file  = 0;
    //TCHAR *szFileName;
    DWORD dwRet;
    DWORD bufferLen = 0;
    TCHAR *buffer = new TCHAR[bufferLen];
    TCHAR *filePart;

    if (hSearch == INVALID_HANDLE_VALUE)
    {
       return -1;
    }

    do
    {
      // Ist das ein Ordner ?
      if(FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
      {
          // Den Ordnernamen ausgeben
          cout&lt;&lt;&quot;(Ordner) &quot;&lt;&lt;FData.cFileName&lt;&lt;endl;
          bufferLen = GetFullPathName(FData.cFileName, bufferLen, buffer, &amp;filePart);
          delete [] buffer;

          if (bufferLen &gt; 0)
          {
             buffer = new TCHAR[bufferLen+1];
             dwRet = GetFullPathName(FData.cFileName, bufferLen+1, buffer, &amp;filePart);
             //cout &lt;&lt; &quot;Buffer: &lt;&quot; &lt;&lt; buffer &lt;&lt; &quot;&gt;&quot; &lt;&lt; endl;
             /*if(fopen(buffer,&quot;r&quot;) != NULL)
             {  */
                  if (dwRet &lt;= bufferLen)
                  {
                      // succeeded:
                      _tprintf(_T(&quot;FullName: %s\n&quot;), buffer);
                      listen(buffer);
                  }
                  //delete [] buffer;
              //}
          }
          cnt_dir++; // Ordnerzähler um 1 erhöhen
      }
      // Wenn nicht
      else
      {
        // Den Dateinamen ausgeben
        cout&lt;&lt;&quot;(Datei)&quot;&lt;&lt;FData.cFileName&lt;&lt;endl;
        cnt_file++; //Dateizähler um 1 erhöhen
      }

      MoreFiles = FindNextFile(hSearch,&amp;FData);
    }while (MoreFiles);

    FindClose(hSearch);

    //cout&lt;&lt;endl&lt;&lt;&quot;Insgesamt&quot;&lt;&lt;endl&lt;&lt;&quot;Ordner:  &quot;&lt;&lt;cnt_dir&lt;&lt;endl&lt;&lt;&quot;Dateien: &quot;&lt;&lt;cnt_file;
    cin.get();
}

int main(int argc, char *argv[])
{
    listen(&quot;C:\\*.*&quot;);
    getchar();
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/69425/verzeichnisse-rekursiv-durchlaufen-mit-borlandc-builder</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 22:04:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/69425.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 27 Mar 2004 14:24:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verzeichnisse rekursiv durchlaufen mit Borlandc++builder on Sat, 27 Mar 2004 17:17:11 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich versuche gerade ein Programm zu schreiben, daß alle Verezichnisse durchgeht und nach Textdateien sucht und diese anzeigt. Ich versuche durch meine Verzeichnisse rekursiv zu gehen. Ich rufe meine Funktion listen in der mein das Erste mal auf und dann wieder in der Funktion listen. Und beim ersten aufruf von der Funktion listen in der Funkton listen steht in der Variable &quot;HANDLE hSearch&quot; FFFFFF. Wenn er dann zu dieser Abfrage kommt:</p>
<pre><code class="language-cpp">if (hSearch == INVALID_HANDLE_VALUE)
    {
       return -1;
    }
</code></pre>
<p>geht er in die if-Anweisung und führt return -1 aus, was er nicht sollte, sonst geht er ja nicht in die anderen Verzeichnisse. <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="😞"
    /><br />
Hat jemand eine Idee was ich falsch mache?<br />
Schicke auch noch meinen Code mit.<br />
Vielen Dank im voraus<br />
Klaus</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;dir.h&gt;
#include &lt;stdio.h&gt;

using namespace
std; 

int listen(char *directory)
{
    WIN32_FIND_DATA FData;
    HANDLE hSearch = FindFirstFile(directory,&amp;FData);
    BOOL MoreFiles = FALSE;
    int cnt_dir = 0, cnt_file  = 0;
    //TCHAR *szFileName;
    DWORD dwRet;
    DWORD bufferLen = 0;
    TCHAR *buffer = new TCHAR[bufferLen];
    TCHAR *filePart;

    if (hSearch == INVALID_HANDLE_VALUE)
    {
       return -1;
    }

    do
    {
      // Ist das ein Ordner ?
      if(FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
      {
          // Den Ordnernamen ausgeben
          cout&lt;&lt;&quot;(Ordner) &quot;&lt;&lt;FData.cFileName&lt;&lt;endl;
          bufferLen = GetFullPathName(FData.cFileName, bufferLen, buffer, &amp;filePart);
          delete [] buffer;

          if (bufferLen &gt; 0)
          {
             buffer = new TCHAR[bufferLen+1];
             dwRet = GetFullPathName(FData.cFileName, bufferLen+1, buffer, &amp;filePart);
             //cout &lt;&lt; &quot;Buffer: &lt;&quot; &lt;&lt; buffer &lt;&lt; &quot;&gt;&quot; &lt;&lt; endl;
             /*if(fopen(buffer,&quot;r&quot;) != NULL)
             {  */
                  if (dwRet &lt;= bufferLen)
                  {
                      // succeeded:
                      _tprintf(_T(&quot;FullName: %s\n&quot;), buffer);
                      listen(buffer);
                  }
                  //delete [] buffer;
              //}
          }
          cnt_dir++; // Ordnerzähler um 1 erhöhen
      }
      // Wenn nicht
      else
      {
        // Den Dateinamen ausgeben
        cout&lt;&lt;&quot;(Datei)&quot;&lt;&lt;FData.cFileName&lt;&lt;endl;
        cnt_file++; //Dateizähler um 1 erhöhen
      }

      MoreFiles = FindNextFile(hSearch,&amp;FData);
    }while (MoreFiles);

    FindClose(hSearch);

    //cout&lt;&lt;endl&lt;&lt;&quot;Insgesamt&quot;&lt;&lt;endl&lt;&lt;&quot;Ordner:  &quot;&lt;&lt;cnt_dir&lt;&lt;endl&lt;&lt;&quot;Dateien: &quot;&lt;&lt;cnt_file;
    cin.get();
}

int main(int argc, char *argv[])
{
    listen(&quot;C:\\*.*&quot;);
    getchar();
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/490005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/490005</guid><dc:creator><![CDATA[abcdefg]]></dc:creator><pubDate>Sat, 27 Mar 2004 17:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnisse rekursiv durchlaufen mit Borlandc++builder on Sat, 27 Mar 2004 14:36:53 GMT]]></title><description><![CDATA[<p>@Mods: Bitte baut doch code-Tags drum. Sonst liest das doch keiner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/490015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/490015</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Sat, 27 Mar 2004 14:36:53 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnisse rekursiv durchlaufen mit Borlandc++builder on Sat, 27 Mar 2004 15:41:50 GMT]]></title><description><![CDATA[<p>code tags wären wirklich net schlecht.</p>
<p>vermute mal es liegt daran das der erste eintrag (&quot;.&quot;) keinen handle hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>[edit]<br />
wird schon einen handle haben, aber irgendwie keinen &quot;gültigen&quot;.<br />
mist ganz schwer zu beschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/490065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/490065</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Sat, 27 Mar 2004 15:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to Verzeichnisse rekursiv durchlaufen mit Borlandc++builder on Sat, 27 Mar 2004 16:07:21 GMT]]></title><description><![CDATA[<p>ah klar.<br />
Ich habe vergessen,daß mit dem . und .. zu berücksichtigen. das ist richtig. da haben wir den fehler schon. Vielen dank und sorry wegen der fehlenden tags.<br />
grüße klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/490085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/490085</guid><dc:creator><![CDATA[abcdefg]]></dc:creator><pubDate>Sat, 27 Mar 2004 16:07:21 GMT</pubDate></item></channel></rss>