<?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[Suche Datei auch in Unterordner]]></title><description><![CDATA[<p>Ich möchte gerne eine Datei auf meinem Rechner suchen, ohne das ich den Pfad kenne und angeben kann. Habe folgenden Quellcode:</p>
<pre><code class="language-cpp">CStringArray &amp;Find(CString strDir, CStringArray &amp;strFiles)
{
    CFileFind search;
    CString strWildcard
    strWildcard = (strDir + &quot;\\*.*&quot;);

    BOOL bWorking = search.FindFile(strWildcard);

    while (bWorking)
    {
        bWorking = search.FindNExtFile();

        if (search.IsDirectory())
        {
            return Find(search.GetFilePath(), strFiles);
        }
        else
            strFiles.Add(search.GetFilePath());
    }
    search.Close();
    return strFiles;
}

void CDateiSuchenDlg::OnTest()
{
    CStringArray strFiles;

    Find(&quot;C:\\&quot;, strFiles);

    for(unsigned int i = 0; i &lt; strFiles.GetSize(); i++)
        MessageBox(strFiles.GetAt(i), &quot;Found&quot;, MB_ICONINFORMATION);
}
</code></pre>
<p>Hier wird aber nicht noch in den Unterverzeichnissen gesucht. Ich möchte einfach ein Code der selbständig nach der Datei &quot;cintools&quot; sucht, egal wo dieser Ordner liegt. Wie kann ich meinen Code dahingehend anpassen?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188706/suche-datei-auch-in-unterordner</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 21:44:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188706.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Aug 2007 06:54:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 06:54:10 GMT]]></title><description><![CDATA[<p>Ich möchte gerne eine Datei auf meinem Rechner suchen, ohne das ich den Pfad kenne und angeben kann. Habe folgenden Quellcode:</p>
<pre><code class="language-cpp">CStringArray &amp;Find(CString strDir, CStringArray &amp;strFiles)
{
    CFileFind search;
    CString strWildcard
    strWildcard = (strDir + &quot;\\*.*&quot;);

    BOOL bWorking = search.FindFile(strWildcard);

    while (bWorking)
    {
        bWorking = search.FindNExtFile();

        if (search.IsDirectory())
        {
            return Find(search.GetFilePath(), strFiles);
        }
        else
            strFiles.Add(search.GetFilePath());
    }
    search.Close();
    return strFiles;
}

void CDateiSuchenDlg::OnTest()
{
    CStringArray strFiles;

    Find(&quot;C:\\&quot;, strFiles);

    for(unsigned int i = 0; i &lt; strFiles.GetSize(); i++)
        MessageBox(strFiles.GetAt(i), &quot;Found&quot;, MB_ICONINFORMATION);
}
</code></pre>
<p>Hier wird aber nicht noch in den Unterverzeichnissen gesucht. Ich möchte einfach ein Code der selbständig nach der Datei &quot;cintools&quot; sucht, egal wo dieser Ordner liegt. Wie kann ich meinen Code dahingehend anpassen?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337795</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 03 Aug 2007 06:54:10 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 07:00:37 GMT]]></title><description><![CDATA[<p>Hab auch schonmal danach gesucht und nichts gefunden. Hab dann mit IsDirectory() auf Unterverzeichnisse geprüft und die Funktion dann rekursiv laufen lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337802</guid><dc:creator><![CDATA[Cpp_Junky]]></dc:creator><pubDate>Fri, 03 Aug 2007 07:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 07:22:04 GMT]]></title><description><![CDATA[<p>Ok, und wie würde das in meinem Fall aussehen? Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337815</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 03 Aug 2007 07:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 07:27:57 GMT]]></title><description><![CDATA[<p>Meiner Meinung nach müsste das schon klappen.<br />
Die if ist in Zeile 13 und der rekursive Aufruf in Zeile 15. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Hast du das schon mal debugged?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337818</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 03 Aug 2007 07:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 07:31:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CStringArray &amp;Find(CString strDir, /*new*/CString strName, CStringArray &amp;strFiles)
{
    CFileFind search;
    CString strWildcard
    strWildcard = (strDir + &quot;\\*.*&quot;);

    BOOL bWorking = search.FindFile(strWildcard);

    while (bWorking)
    {
        bWorking = search.FindNextFile();

        if (search.IsDirectory())
        {
            return Find(search.GetFilePath(), strFiles);
        }
        else
/*new*/     if(search.GetFileTitle()==strName)
                strFiles.Add(search.GetFilePath());
    }
    search.Close();
    return strFiles;
}

void CDateiSuchenDlg::OnTest()
{
    CStringArray strFiles;

    Find(&quot;C:\\&quot;,/*new*/ &quot;cintools&quot;, strFiles);

    for(unsigned int i = 0; i &lt; strFiles.GetSize(); i++)
        MessageBox(strFiles.GetAt(i), &quot;Found&quot;, MB_ICONINFORMATION);
}
</code></pre>
<p>(eventuell mußt du den Vergleich dort oben noch an deine Bedürfnisse anpassen, aber das Prinzip sollte klar sein)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337819</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Aug 2007 07:31:34 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 07:49:22 GMT]]></title><description><![CDATA[<p>Vielen Dank für eure schnelle Hilfe. Der Compiler meldet alles in Ordnung. Bei der Ausführung bekomme ich nun eine Unbehandelte Ausnahme:</p>
<pre><code class="language-cpp">(NTDLL.DLL): 0xC0000005: Access Violation.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1337829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337829</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 03 Aug 2007 07:49:22 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 07:52:24 GMT]]></title><description><![CDATA[<p>Kannst du vielleicht einschränken, wo genau diese Exception fliegt (klick auf &quot;Wiederholen&quot; und schau dir an, was der Debugger ausspuckt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337833</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Aug 2007 07:52:24 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:02:58 GMT]]></title><description><![CDATA[<p>Ich kann nicht Wiederholen klicken. Aber er springt mit dem Debugger hierhin:</p>
<pre><code class="language-cpp">7C91D4E8  call        dword ptr [edx]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1337845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337845</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:04:47 GMT]]></title><description><![CDATA[<p>Setz mal an strategischen Stellen Breakpoints und taste dich an die Zeile ran. <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/1337847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337847</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:04:47 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:14:56 GMT]]></title><description><![CDATA[<p>Ich würde eventuell CreateProcess() verwenden... Shellexecute ist da meines Wissens nach nicht die beste Lösung. Shellexecute ist eher was, um BIlder mit dem Standard-Bildbetrachter zu öffnen, oder txt-Files mit dem Standart-Texteditor..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337855</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:14:56 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:20:34 GMT]]></title><description><![CDATA[<p>Ich habe gemerkt das nach dem dritten Funktionsaufruf die strWildcard Variable folgenden Inahlt hat:</p>
<pre><code class="language-cpp">C:\Dokumente und Einstellungen\.\*.*
</code></pre>
<p>Danach kommt irgendwann ein Stack Overflow</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337865</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:27:05 GMT]]></title><description><![CDATA[<p>Du musst die Verzeichnisse . und .. ignorieren!<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39130.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39130.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337876</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:28:17 GMT]]></title><description><![CDATA[<p>Hmm, das könnte ein Problem sein - das mußt du abfangen, indem du vor/in der isDirectory()-Überprüfung abbrichst, wenn die gefundene Datei &quot;.&quot; (eigenes Verzeichnis) oder &quot;..&quot; (Vater-Verzeichnis) heißt:</p>
<pre><code class="language-cpp">while (bWorking)
{
  bWorking = search.FindNextFile();

  if (search.IsDirectory())
  {
    if(search.GetFileName()==&quot;.&quot; || search.GetFileName==&quot;..&quot;) continue;
    /*return*/ Find(search.GetFilePath(), strFiles);
  }
  else
     if(search.GetFileTitle()==strName) strFiles.Add(search.GetFilePath());
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1337878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337878</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:28:17 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:32:46 GMT]]></title><description><![CDATA[<p>Falls es jemanden interessiert: CFileFind::IsDots<br />
(Ist mir mal in dem Zusammenhang über den Weg gelaufen...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337881</guid><dc:creator><![CDATA[isabeau]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:32:46 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 08:52:31 GMT]]></title><description><![CDATA[<p>estartu schrieb:</p>
<blockquote>
<p>Du musst die Verzeichnisse . und .. ignorieren!<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39130.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39130.html</a></p>
</blockquote>
<p>isabeau schrieb:</p>
<blockquote>
<p>Falls es jemanden interessiert: CFileFind::IsDots<br />
(Ist mir mal in dem Zusammenhang über den Weg gelaufen...)</p>
</blockquote>
<p>Vielen Dank, genau das wars. Mit</p>
<pre><code class="language-cpp">if (search.IsDots()) 
    continue;
</code></pre>
<p>vor der IsDirectory Abfrage funktionierts einwandfrei.</p>
<p>Danke für die schnelle Hilfe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337903</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 03 Aug 2007 08:52:31 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 09:14:26 GMT]]></title><description><![CDATA[<p>Eins wäre noch toll. Er sucht weiter, auch wenn er die Datei schon gefunden hat. Wäre nett wenn er abbrechen würde sobald er die Datei gefunden hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337929</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 03 Aug 2007 09:14:26 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 09:28:21 GMT]]></title><description><![CDATA[<p>Ja, die jetzige Variante sucht nach allen Vorkommen der Datei auf deiner Platte und packt sie in dein StrinArray. Wenn du nur das erste Vorkommen finden willst, mußt du beim ersten Treffer mit der Suche abbbrechen (und bei jedem rekursiven Aufruf auswerten, ob auf diesem Weg etwas gefunden wurde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337943</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Aug 2007 09:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 03 Aug 2007 09:28:29 GMT]]></title><description><![CDATA[<p>Ist es definitiv nur EINE Datei? Dann mach doch ein return unter Zeile wo du den Dateinamen speicherst.</p>
<p>Außerdem würde es dann reichen, einen CString zurückzugeben. <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/1337944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337944</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 03 Aug 2007 09:28:29 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Mon, 06 Aug 2007 08:51:24 GMT]]></title><description><![CDATA[<p>estartu schrieb:</p>
<blockquote>
<p>Ist es definitiv nur EINE Datei? Dann mach doch ein return unter Zeile wo du den Dateinamen speicherst.</p>
<p>Außerdem würde es dann reichen, einen CString zurückzugeben. <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>
</blockquote>
<p>Ja, es kann nur eine Datei sein. Und diese existiert nur wenn man LabView installiert hat. Ich bekomme es mit dem Abbrechen der Suche nicht wirklich hin. Wenn ich es so mache:</p>
<pre><code class="language-cpp">if(search.GetFileTitle() == strName)
{
    strFiles.Add(search.GetFilePath());
/*new*/    return strFiles;
}
</code></pre>
<p>wird nicht nach dem ersten Treffer beendet. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339393</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Mon, 06 Aug 2007 08:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Mon, 06 Aug 2007 09:18:50 GMT]]></title><description><![CDATA[<p>Du mußt auch komplett alle rekursiven Aufrufe abbrechen, wenn von oben &quot;gefunden&quot; zurückkam, sonst wird im nächsten Ordner weitergesucht:</p>
<pre><code class="language-cpp">BOOL Find(CString strDir, CString strName, CString &amp;strFullPath)
{
    CFileFind search;
    CString strWildcard
    strWildcard = (strDir + &quot;\\*.*&quot;);

    BOOL bWorking = search.FindFile(strWildcard);

    while (bWorking)
    {
        bWorking = search.FindNExtFile();

        if(search.IsDots())continue;
        if (search.IsDirectory())
        {
            if(Find(Find(search.GetFilePath(),strName,strFullPath)) return TRUE;
        }
        else if(search.GetFileTitle()==strName)
        {
            strFullPath=GetFilePath());
            return TRUE;
        }
    }
    search.Close();
    return FALSE;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1339413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339413</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 06 Aug 2007 09:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 10 Aug 2007 07:02:49 GMT]]></title><description><![CDATA[<p>Besteht die Möglichkeit, das die suche nach einer Datei nicht auf Groß und kleinschreibung achtet, sondern nur auf die Zeichen nach denen gesucht wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1341974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1341974</guid><dc:creator><![CDATA[abrissbirne]]></dc:creator><pubDate>Fri, 10 Aug 2007 07:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Datei auch in Unterordner on Fri, 10 Aug 2007 09:46:01 GMT]]></title><description><![CDATA[<p>Dazu könntest du z.B. die beiden zu vergleichenden Dateinamen in CString-Variablen speichern und dann MakeUpper() oder MakeLower() ausführen. Dann erst die beiden Namen vergleichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1342074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1342074</guid><dc:creator><![CDATA[isabeau]]></dc:creator><pubDate>Fri, 10 Aug 2007 09:46:01 GMT</pubDate></item></channel></rss>