<?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[Rekursives Auflisten von Verzeichnissen und Dateien]]></title><description><![CDATA[<p>Hi Leute, ich muss ein Programm in C++ entwickeln, dass Datein und Verzeichnisse rekursiv auflistet. Ich habe ehrlich gesagt gar keine Ahnung wie ich das machen soll... Könntet ihr mir helfen und vllt ein paar Ansätze liefern? Also was für Bibliotheken ich einbinden muss usw... Ich programmier übrigens unter Ubuntu.</p>
<p>Vielen Dank im voraus!<br />
Mfg Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/311544/rekursives-auflisten-von-verzeichnissen-und-dateien</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 07:25:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311544.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Dec 2012 22:23:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursives Auflisten von Verzeichnissen und Dateien on Fri, 07 Dec 2012 22:23:31 GMT]]></title><description><![CDATA[<p>Hi Leute, ich muss ein Programm in C++ entwickeln, dass Datein und Verzeichnisse rekursiv auflistet. Ich habe ehrlich gesagt gar keine Ahnung wie ich das machen soll... Könntet ihr mir helfen und vllt ein paar Ansätze liefern? Also was für Bibliotheken ich einbinden muss usw... Ich programmier übrigens unter Ubuntu.</p>
<p>Vielen Dank im voraus!<br />
Mfg Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278330</guid><dc:creator><![CDATA[ChrisGast]]></dc:creator><pubDate>Fri, 07 Dec 2012 22:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursives Auflisten von Verzeichnissen und Dateien on Fri, 07 Dec 2012 23:22:40 GMT]]></title><description><![CDATA[<p><a href="http://www.boost.org/doc/libs/1_52_0/libs/filesystem/doc/index.htm" rel="nofollow">Boost.Filesystem</a>.</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;boost/filesystem.hpp&gt;

void list_up(boost::filesystem::path const&amp; p, unsigned indent = 0)
{
    using namespace boost::filesystem;
    std::string const indentation(indent, '\t');

    for(directory_iterator iter(p), end;iter != end;++iter)
        if(is_regular_file(*iter))
            std::cout &lt;&lt; indentation &lt;&lt; &quot;File: &quot; &lt;&lt; *iter &lt;&lt; '\n';
        else if(is_directory(*iter))
        {
            std::cout &lt;&lt; indentation &lt;&lt; &quot;Dir: &quot; &lt;&lt; *iter &lt;&lt; &quot;:\n&quot;;
            list_up(iter-&gt;path(), indent + 1);
        }
}

int main() try
{
    list_up(&quot;/&quot;);
}
catch (const boost::filesystem::filesystem_error&amp; ex)
{
    std::cerr &lt;&lt; ex.what() &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2278339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278339</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 07 Dec 2012 23:22:40 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursives Auflisten von Verzeichnissen und Dateien on Fri, 07 Dec 2012 23:08:46 GMT]]></title><description><![CDATA[<p><a href="http://man.cx/nftw" rel="nofollow">man: nftw</a> ftw!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278341</guid><dc:creator><![CDATA[ftw hoch zwei]]></dc:creator><pubDate>Fri, 07 Dec 2012 23:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursives Auflisten von Verzeichnissen und Dateien on Sat, 08 Dec 2012 03:29:34 GMT]]></title><description><![CDATA[<p>Speziell für Windows:</p>
<pre><code>#pragma once

#include &lt;Windows.h&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;iostream&gt;

using std::vector;
using std::string;

class Filesystem {

public:

	Filesystem();
	~Filesystem();

	vector&lt;string&gt; read_dir_files(string filepath, bool recursive);

private:

	WIN32_FIND_DATA data;
	HANDLE			find;

	Filesystem(const Filesystem&amp;);
	Filesystem&amp; operator=(const Filesystem&amp;);
};
</code></pre>
<pre><code>vector&lt;string&gt; Filesystem::read_dir_files(string filepath, bool recursiv) {

	vector&lt;string&gt; dir;
	vector&lt;string&gt; file;
	unsigned int count = 0;

	do {
		string v_filepath = filepath + &quot;*&quot;;
		find = FindFirstFileA(v_filepath.c_str(), &amp;data);
		do {
			if (*data.cFileName != '.' &amp;&amp; *data.cFileName != '..') {
				if (data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) {
					dir.push_back(filepath + data.cFileName);
				}
				else {
					file.push_back(filepath + data.cFileName);
				}
			}
		} while (FindNextFileA(find, &amp;data) != 0);

		if (dir.size() &gt; count) {
			filepath = dir[count] + &quot;\\&quot;;
		}

		count++;
	} while (dir.size() &gt;= count &amp;&amp; recursiv);

	return file;
}
</code></pre>
<p>Verbesserungsvorschläge willkommen <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/2278350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278350</guid><dc:creator><![CDATA[directory]]></dc:creator><pubDate>Sat, 08 Dec 2012 03:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursives Auflisten von Verzeichnissen und Dateien on Sun, 16 Dec 2012 20:41:57 GMT]]></title><description><![CDATA[<p>ok vielen dank für eure antworten, hab das programm soweit fertig, nur hab ich noch einen gravierenden fehler, undzwar erkennt er JEDE datei als verzeichnis. ich hab keine ahung warum.</p>
<pre><code>#include &lt;dirent.h&gt;
#include &lt;iostream&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/stat.h&gt;
#include &lt;string&gt;

void searchDir(std::string suchort ) {

	DIR *hdir; 
	struct dirent *entry; 
	struct stat Status;
	int Dateityp;

    const char * suchortCC = suchort.c_str ();
	hdir = opendir(suchortCC);

    do{
        entry = readdir(hdir);

        if (entry) {

            //char name = entry-&gt;d_name;
            char *nameP;
            nameP = entry-&gt;d_name;

            stat(nameP, &amp;Status);
            Dateityp = Status.st_mode;

			std::cout &lt;&lt; Dateityp &lt;&lt;std::endl;
			if (Dateityp &amp; S_IFREG) {
				std::cout &lt;&lt; &quot;reguläre Datei&quot; &lt;&lt; std::endl;
				std::cout &lt;&lt; entry-&gt;d_name &lt;&lt; std::endl;

			}
			if (Dateityp &amp; S_IFDIR ) {
				std::cout &lt;&lt; &quot;Verzeichnis&quot; &lt;&lt; std::endl; 
				std::cout &lt;&lt; entry-&gt;d_name &lt;&lt; std::endl;

				//std::string suchortUV = suchort + entry-&gt;d_name + &quot;/&quot;;
				//const char * suchortCC = suchortUV.c_str ();
				// searchDir(suchortUV);
			}
        }
    } while (entry); 	
    closedir(hdir);		

}

int main() {
    std::string suchort; 
    std::cout&lt;&lt;&quot;Bitte Suchpfad angeben: &quot;&lt;&lt;std::endl;

    std::cin&gt;&gt;std::ws;
    getline(std::cin, suchort);
    //const char  suchortCC = suchort.c_str ();
    searchDir(suchort);
    return 0;
}
</code></pre>
<p>Ich hab jetzt auch eingebaut dass der benutzer das verzeichnis selber eintippt was durchsucht werden soll, aber wie gesagt, der spuckt mir nur aus dass es sich um ein verzeichnis handelt. hat jemand ne idee warum?</p>
<p>danke im voraus!<br />
Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2280716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2280716</guid><dc:creator><![CDATA[ChrisGast]]></dc:creator><pubDate>Sun, 16 Dec 2012 20:41:57 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursives Auflisten von Verzeichnissen und Dateien on Mon, 17 Dec 2012 16:30:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>der Test auf Verzeichnis bzw. reguläre Datei ist falsch, siehe:</p>
<p><a href="http://www.gnu.org/software/libc/manual/html_node/Testing-File-Type.html" rel="nofollow">http://www.gnu.org/software/libc/manual/html_node/Testing-File-Type.html</a></p>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2280948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2280948</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Mon, 17 Dec 2012 16:30:30 GMT</pubDate></item></channel></rss>