<?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[Ordner Struktur anzeigen]]></title><description><![CDATA[<p>HI,<br />
und zwar hab ich mal ne Frage.<br />
Ich würde gerne die komplette Ordnerstruktur anzeigen von Laufwerk c:\</p>
<p>mein quellcode sieht wie folgt aus.</p>
<pre><code class="language-cpp">void PrintDirectory(char *pPath)
{
	char path[_MAX_PATH];
	char nextLevel[_MAX_PATH];
	strcpy (path, pPath);
	strcat (nextLevel, &quot;*.*&quot;);

	WIN32_FIND_DATA FileData; 

	HANDLE hfind = FindFirstFile(path, &amp;FileData);

	int FindMoreFiles; 
	int dir = 0;
	int file  = 0;

	if (hfind != INVALID_HANDLE_VALUE)
	{
		do
		{
			if (FileData.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
			{      				
				cout&lt;&lt; &quot;&lt;Ordner&gt; &quot; &lt;&lt; FileData.cFileName &lt;&lt; endl &lt;&lt;endl;

				strcat (FileData.cFileName, &quot;\\&quot;);
				strcat (path, FileData.cFileName);

				cout &lt;&lt; &quot;testausgabe:&quot; &lt;&lt; path &lt;&lt; endl; // testausgabe

				strcpy (nextLevel, path);

				PrintDirectory(nextLevel);

				cout &lt;&lt; nextLevel &lt;&lt; endl; // testausgabe

				dir++; 
			}

			else 
			{
				cout &lt;&lt; &quot;&lt;Datei&gt;  &quot; &lt;&lt; FileData.cFileName &lt;&lt; endl; 
				file++; 
			}  

			FindMoreFiles = FindNextFile(hfind,&amp;FileData);
		} while (FindMoreFiles);

	}

	else
	{
		cout &lt;&lt; &quot;Dieser Datentraeger\\Ordner ist leer.&quot; &lt;&lt; endl;
	}

	FindClose (hfind);

	cout &lt;&lt; endl &lt;&lt; &quot;Insgesamt&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Ordner:  &quot;&lt;&lt; dir &lt;&lt; endl;
	cout &lt;&lt; &quot;Dateien: &quot;&lt;&lt; file &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>und in der Main steht folgendes.</p>
<pre><code class="language-cpp">PrintDirectory(&quot;c:\\&quot;);
cout &lt;&lt; &quot;Druecken Sie eine Tasten um ins Menu zu gelangen.&quot; &lt;&lt; endl;
getch ();
</code></pre>
<p>ausgegeben wird nun immer das.</p>
<pre><code>&lt;Ordner&gt; WINNT

testausgabe:c:\*.*blaaa\Dokumente und Einstellungen\HajoDial\Hd_test\Programme\R
ECYCLER\SVN_Projekte\SVN_Repos\System Volume Information\Temp\test\WINNT\
Dieser Datentraeger\Ordner ist leer.

Insgesamt
Ordner:  0
Dateien: 0
</code></pre>
<p>er hängt also jeden Ordner immer hinten drann.<br />
was ich komisch find is der teil. &quot;<em>.</em>&quot;<br />
aber wenn ichs raus mach gehts gar nich.</p>
<p>vielen Dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/91582/ordner-struktur-anzeigen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 09:30:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/91582.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Nov 2004 08:48:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ordner Struktur anzeigen on Wed, 10 Nov 2004 09:21:43 GMT]]></title><description><![CDATA[<p>HI,<br />
und zwar hab ich mal ne Frage.<br />
Ich würde gerne die komplette Ordnerstruktur anzeigen von Laufwerk c:\</p>
<p>mein quellcode sieht wie folgt aus.</p>
<pre><code class="language-cpp">void PrintDirectory(char *pPath)
{
	char path[_MAX_PATH];
	char nextLevel[_MAX_PATH];
	strcpy (path, pPath);
	strcat (nextLevel, &quot;*.*&quot;);

	WIN32_FIND_DATA FileData; 

	HANDLE hfind = FindFirstFile(path, &amp;FileData);

	int FindMoreFiles; 
	int dir = 0;
	int file  = 0;

	if (hfind != INVALID_HANDLE_VALUE)
	{
		do
		{
			if (FileData.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
			{      				
				cout&lt;&lt; &quot;&lt;Ordner&gt; &quot; &lt;&lt; FileData.cFileName &lt;&lt; endl &lt;&lt;endl;

				strcat (FileData.cFileName, &quot;\\&quot;);
				strcat (path, FileData.cFileName);

				cout &lt;&lt; &quot;testausgabe:&quot; &lt;&lt; path &lt;&lt; endl; // testausgabe

				strcpy (nextLevel, path);

				PrintDirectory(nextLevel);

				cout &lt;&lt; nextLevel &lt;&lt; endl; // testausgabe

				dir++; 
			}

			else 
			{
				cout &lt;&lt; &quot;&lt;Datei&gt;  &quot; &lt;&lt; FileData.cFileName &lt;&lt; endl; 
				file++; 
			}  

			FindMoreFiles = FindNextFile(hfind,&amp;FileData);
		} while (FindMoreFiles);

	}

	else
	{
		cout &lt;&lt; &quot;Dieser Datentraeger\\Ordner ist leer.&quot; &lt;&lt; endl;
	}

	FindClose (hfind);

	cout &lt;&lt; endl &lt;&lt; &quot;Insgesamt&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Ordner:  &quot;&lt;&lt; dir &lt;&lt; endl;
	cout &lt;&lt; &quot;Dateien: &quot;&lt;&lt; file &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>und in der Main steht folgendes.</p>
<pre><code class="language-cpp">PrintDirectory(&quot;c:\\&quot;);
cout &lt;&lt; &quot;Druecken Sie eine Tasten um ins Menu zu gelangen.&quot; &lt;&lt; endl;
getch ();
</code></pre>
<p>ausgegeben wird nun immer das.</p>
<pre><code>&lt;Ordner&gt; WINNT

testausgabe:c:\*.*blaaa\Dokumente und Einstellungen\HajoDial\Hd_test\Programme\R
ECYCLER\SVN_Projekte\SVN_Repos\System Volume Information\Temp\test\WINNT\
Dieser Datentraeger\Ordner ist leer.

Insgesamt
Ordner:  0
Dateien: 0
</code></pre>
<p>er hängt also jeden Ordner immer hinten drann.<br />
was ich komisch find is der teil. &quot;<em>.</em>&quot;<br />
aber wenn ichs raus mach gehts gar nich.</p>
<p>vielen Dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/648566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/648566</guid><dc:creator><![CDATA[SchaKaaa]]></dc:creator><pubDate>Wed, 10 Nov 2004 09:21:43 GMT</pubDate></item><item><title><![CDATA[Reply to Ordner Struktur anzeigen on Wed, 10 Nov 2004 11:35:23 GMT]]></title><description><![CDATA[<p>Du bekommst ja immer nur den Ordnernamen zurückgeliefert. Also musst du dir aus diesem wieder den Pfad zusammensetzen. Hierbei kannst du aber nicht direkt den String von FindFirstFile verwenden, da hier ja noch das * (mit <em>.</em> solltest du nur Sachen bekommen, die auch einen Punkt enthalten, oder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> ) dranhängt - also entweder den Pfad ohne \* merken, oder eben vor dem zusammensetzen das \* abschneiden <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/648684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/648684</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 10 Nov 2004 11:35:23 GMT</pubDate></item></channel></rss>