<?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[Dateien&#x2F;Verzeichnisse eindeutíg bestimmen]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgende Funktion aus dem Forum ausgegraben und ein wenig modifiziert. Es sollen alle Dateien in ein StringGrid geschrieben werden und alle Verzeichnisse in ein extra StringGrid. Nun ist mir aufgefallen, dass ich Verzeichnisse auf meiner Festplatte haben die in das StringGrid für Dateien geschrieben werden, weil sie das faAnyFile-Attribut besitzen aber nicht das faDirectory-Attribut.</p>
<p>Was hat es mit den Verzeichniss auf sich?<br />
Wie kann ich eindeutig Dateien und Verzeichnisse unterscheiden?</p>
<pre><code class="language-cpp">void TForm1::DataSuche(AnsiString pfad)
{
TSearchRec sr;
pfad += &quot;\\&quot;;

if (FindFirst(pfad + &quot;*&quot;, faAnyFile, sr) == 0)//fAnyFile:jede Datei wird gesucht
  { 
    do 
      {     
      if ((sr.Name != &quot;.&quot;)&amp;&amp;(sr.Name != &quot;..&quot;)) //. und .. werden nicht berücksichtigt (sonst habt ihr in euren .txt dateien jede menge . bzw. ..) 
      { 
       if (sr.Attr == faDirectory) //wenn das Attr. ein Ordner ist 
      { 
       StringGrid2-&gt;Cells[0][StringGrid2-&gt;RowCount - 1] = pfad + sr.Name; //wenn nicht ist es eine datei und wird in die .txt datei geschrieben
       StringGrid2-&gt;RowCount += 1;
       DataSuche(pfad+sr.Name); //wird dieser ordner wieder nach dateien durchsucht
      } 
       else 
      { 
       StringGrid1-&gt;Cells[0][StringGrid1-&gt;RowCount - 1] = pfad + sr.Name; //wenn nicht ist es eine datei und wird in die .txt datei geschrieben
       StringGrid1-&gt;RowCount += 1;
      }
     } 
    } 
    while (FindNext(sr) == 0); 
    FindClose(sr); 
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/174729/dateien-verzeichnisse-eindeutíg-bestimmen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 21:08:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174729.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Mar 2007 15:46:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Fri, 02 Mar 2007 15:46:58 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgende Funktion aus dem Forum ausgegraben und ein wenig modifiziert. Es sollen alle Dateien in ein StringGrid geschrieben werden und alle Verzeichnisse in ein extra StringGrid. Nun ist mir aufgefallen, dass ich Verzeichnisse auf meiner Festplatte haben die in das StringGrid für Dateien geschrieben werden, weil sie das faAnyFile-Attribut besitzen aber nicht das faDirectory-Attribut.</p>
<p>Was hat es mit den Verzeichniss auf sich?<br />
Wie kann ich eindeutig Dateien und Verzeichnisse unterscheiden?</p>
<pre><code class="language-cpp">void TForm1::DataSuche(AnsiString pfad)
{
TSearchRec sr;
pfad += &quot;\\&quot;;

if (FindFirst(pfad + &quot;*&quot;, faAnyFile, sr) == 0)//fAnyFile:jede Datei wird gesucht
  { 
    do 
      {     
      if ((sr.Name != &quot;.&quot;)&amp;&amp;(sr.Name != &quot;..&quot;)) //. und .. werden nicht berücksichtigt (sonst habt ihr in euren .txt dateien jede menge . bzw. ..) 
      { 
       if (sr.Attr == faDirectory) //wenn das Attr. ein Ordner ist 
      { 
       StringGrid2-&gt;Cells[0][StringGrid2-&gt;RowCount - 1] = pfad + sr.Name; //wenn nicht ist es eine datei und wird in die .txt datei geschrieben
       StringGrid2-&gt;RowCount += 1;
       DataSuche(pfad+sr.Name); //wird dieser ordner wieder nach dateien durchsucht
      } 
       else 
      { 
       StringGrid1-&gt;Cells[0][StringGrid1-&gt;RowCount - 1] = pfad + sr.Name; //wenn nicht ist es eine datei und wird in die .txt datei geschrieben
       StringGrid1-&gt;RowCount += 1;
      }
     } 
    } 
    while (FindNext(sr) == 0); 
    FindClose(sr); 
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1238172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238172</guid><dc:creator><![CDATA[TimonVogt]]></dc:creator><pubDate>Fri, 02 Mar 2007 15:46:58 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Fri, 02 Mar 2007 16:14:35 GMT]]></title><description><![CDATA[<p>Lies in der Hilfe zu TSearchRec noch mal nach, wie man die Attribute auswertet.</p>
<p>Ein Verzeichnis ohne Verzeichnis-Attribut ist kein Verzeichnis. <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/1238194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238194</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Fri, 02 Mar 2007 16:14:35 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Fri, 02 Mar 2007 20:35:02 GMT]]></title><description><![CDATA[<p>Ich weiß das es sich komisch anhört, aber es ist eindeutig ein Ordner.<br />
Aber er stimmt der Abfrage des faDirectory-Attribut nicht überein und wird somit in das StringGrid für Dateinen reingeschrieben.<br />
Fals jemand ähnliches aufgefallen ist, bin ich sehr dankbar für jeden Hinweis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238303</guid><dc:creator><![CDATA[TimonVogt]]></dc:creator><pubDate>Fri, 02 Mar 2007 20:35:02 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Fri, 02 Mar 2007 21:09:57 GMT]]></title><description><![CDATA[<p>Hatte auch mal so einen Fall. Ordner wurde nicht als Ordner erkannt. Habe den Ordner neu erstellt (also umbenannt, neuen Ordner gleichen Namens erstellt und dann den Inhalt wieder reinkopiert) und dann funktionierte es. Wenn ich mich recht entsinne war es ein Ordner, der aus einer im Internet geladenen zip Datei stammte, jedenfalls war der Ordner nicht auf meinem system erstellt worden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1238321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1238321</guid><dc:creator><![CDATA[OldMan00]]></dc:creator><pubDate>Fri, 02 Mar 2007 21:09:57 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Sun, 04 Mar 2007 21:43:48 GMT]]></title><description><![CDATA[<p>Ich habe nun festgestellt das folgende Ordner aus &quot;Eigene Dateien&quot; nicht als Ordner erkannt werden: Eigene Bilder, Eigene Video, Eigene Musik</p>
<p>Nun Eigene Bilder, Eigene Videos und Eigene Musik sind eindeutig Ordner, wie jeder selbst weiß. Aber was ist der unterschied zu den Ordner die ich mit den faDirectory-Attribut eindeutig als Ordner bestimmen kann?</p>
<p>Eigene Bilder, Eigene Videos und Eigene Musik scheinen kein faDirectory-Attribut zu besitzen. Wie kann man das Problem lösen, das auch diese Ordner eindeutig als Ordner erkannt werden?</p>
<p>Ich habe mit den Attributen lange rumexperimentiert, aber leider keine Lösung gefunden.</p>
<p>Bin sehr dankbar für jeden der dazu etwas beitragen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1239255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239255</guid><dc:creator><![CDATA[TimonVogt]]></dc:creator><pubDate>Sun, 04 Mar 2007 21:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Sun, 04 Mar 2007 22:21:59 GMT]]></title><description><![CDATA[<p>TimonVogt schrieb:</p>
<blockquote>
<p>Nun Eigene Bilder, Eigene Videos und Eigene Musik sind eindeutig Ordner, wie jeder selbst weiß.</p>
</blockquote>
<p>Und sie werden mit <em>faDirectory</em> auch problemlos aufgelistet oder ausgefiltert, wenn man es richtig auswertet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1239263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239263</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 04 Mar 2007 22:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Sun, 04 Mar 2007 22:36:16 GMT]]></title><description><![CDATA[<p>Hallo</p>
<pre><code class="language-cpp">if (sr.Attr == faDirectory)
</code></pre>
<p>Das ist eine schlechte Abfrage. Hier geht es nicht um einzelne Konstanten, sondern um komplexe Bitmasken. Wenn zum Beispiel ein Verzeichnis auch noch schreibgeschützt ist wirst du hier ein false als Ergebnis bekommen.<br />
Deshalb must du so vergleichen :</p>
<pre><code class="language-cpp">if (sr.Attr &amp;= faDirectory)
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1239268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239268</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 04 Mar 2007 22:36:16 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Sun, 04 Mar 2007 22:44:26 GMT]]></title><description><![CDATA[<p>Spielverderber! <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="😉"
    /><br />
Ausserdem ist das '=' überflüssig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1239273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239273</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 04 Mar 2007 22:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien&#x2F;Verzeichnisse eindeutíg bestimmen on Sun, 04 Mar 2007 22:49:02 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Na ich glaub nur wenige Fragesteller hier wissen was Bitmaipulationen und Bitmasken sind... da ist doch etwas mehr Nachhilfe nötig. Auch wenn ich glaube das es eigentlich im Beispiel aus der BCB-Hilfe richtig erklärt wird...</p>
<p>Ja das = ist doch nicht nötig... aber wenigstens etwas bekanntes <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>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1239275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1239275</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 04 Mar 2007 22:49:02 GMT</pubDate></item></channel></rss>