<?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[dateimanager]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne eine Art Dateimanager wie in der Konsole machen.</p>
<p>Alles was ich will ist, Verzeichnisse auflisten und wahlweise zurück in den Überordner zu springen/wechseln.</p>
<p>Was ich schon habe ist eine Funktion dir mir, bei Pfad als Parameter, das Verzeichnis auflistet.</p>
<p>Hat jemand ne Idee?</p>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/172129/dateimanager</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 21:08:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172129.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Feb 2007 16:45:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 16:45:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich würde gerne eine Art Dateimanager wie in der Konsole machen.</p>
<p>Alles was ich will ist, Verzeichnisse auflisten und wahlweise zurück in den Überordner zu springen/wechseln.</p>
<p>Was ich schon habe ist eine Funktion dir mir, bei Pfad als Parameter, das Verzeichnis auflistet.</p>
<p>Hat jemand ne Idee?</p>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221274</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Thu, 01 Feb 2007 16:45:34 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 17:47:04 GMT]]></title><description><![CDATA[<p>Ja halt mit FindFirstFile und FindNextFile durchgehen ... und dir halt dein aktuelles dir merken ... wo ist dein problem?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221316</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 01 Feb 2007 17:47:04 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 18:04:01 GMT]]></title><description><![CDATA[<p>JA das mit findfirstfile etc hab ich ja schon, nur das Problem ist das ich an jeder Stelle auf Befehl wieder ins Überverzeichnis wechseln will</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221323</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Thu, 01 Feb 2007 18:04:01 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 20:06:44 GMT]]></title><description><![CDATA[<p>Julio schrieb:</p>
<blockquote>
<p>JA das mit findfirstfile etc hab ich ja schon, nur das Problem ist das ich an jeder Stelle auf Befehl wieder ins Überverzeichnis wechseln will</p>
</blockquote>
<p>Ja und ? Mach doch <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="😃"
    /> . Du musst dann eben das übergeordneter Verzeichnis entweder neu durchzählen lassen (gründlicher, dauert aber länger) oder Du speicherst den Inhalt der Verzeichnisse in entsprechenden Datenstrukturen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221389</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 01 Feb 2007 20:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 21:25:00 GMT]]></title><description><![CDATA[<p>Hallo, so hab mich mal hingesetzt und da was zusammengeproggt (auch wenn viell ned so sauber):</p>
<p>Das Programm listet alle Dateien auf und mit einem DIR-Befehl auch weitere.</p>
<p>einziges Problem:<br />
Wie soll ich (bei möglichst gleichem source) auch den CD-BEFEHL einbauen?</p>
<p>also den wo ich ins letzte zurückspringe?</p>
<p>das hab ich eig eh bedacht denn wenn die Funktion aufhöhrt ist man ja wieder im überordner.</p>
<p>Leider passen dann die Stringfunktionen nichtmehr da sie durch die nächste instanz von dir ja verändert werden.</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;string.h&gt;

int dir(char param[]);
char stern[4]=&quot;**&quot;;
char option[200];
char thisparam[200];
char Verzeichnis[200]=&quot;&quot;;
char doppelslash[3]=&quot;//&quot;;
char BackupSlash[200];

int main()

{
char param[200]=&quot;C:&quot;;
dir(param);

return 0;
}

int dir(char param[])

{

HANDLE fHandle; 
WIN32_FIND_DATA wfd; 

system(&quot;cls&quot;);

memset(Verzeichnis,0,sizeof(Verzeichnis));

lstrcat(Verzeichnis,param);
lstrcat(Verzeichnis,doppelslash);
lstrcat(param,doppelslash);
lstrcat(Verzeichnis,stern);
FILE *test;
test=fopen(&quot;verzeichnis.txt&quot;,&quot;w+&quot;);
fprintf(test,&quot;%s&quot;,Verzeichnis);
fclose(test);

strcpy(BackupSlash,Verzeichnis);

fHandle=FindFirstFile(Verzeichnis,&amp;wfd); 

do 
{ 
    // Eintrag nur behandeln, wenn es nicht . oder .. ist (werden nur bei Unterverzeichnissen mit zurückgeliefert) 
    // hier könnte man z.B. auch mit lstrcmp auf . und .. vergleichen, was allerdings nicht ganz so effizient ist 
    if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) 
    { 
        if (wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) 
        { 
                   printf(&quot;%s&quot;,wfd.cFileName);
		      printf(&quot; DIR\n&quot;);

		//SUCHFUNKTION nicht vergessen
        } 
        else 
        { 
           printf(&quot;%s\n&quot;,wfd.cFileName);
        } 

    } 

} 
while (FindNextFile(fHandle,&amp;wfd)); 

scanf(&quot;%s&quot;,&amp;option);
if (option==&quot;DIR&quot;);
scanf(&quot;%s&quot;,&amp;thisparam);
lstrcat(param,thisparam);
dir(param);

FindClose(fHandle);

return 0;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1221424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221424</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Thu, 01 Feb 2007 21:25:00 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 21:25:49 GMT]]></title><description><![CDATA[<p>Sry, Kommentare im Quelltext bitte nicht beachten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221425</guid><dc:creator><![CDATA[julio]]></dc:creator><pubDate>Thu, 01 Feb 2007 21:25:49 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 23:00:56 GMT]]></title><description><![CDATA[<p>bitte helft mir, ich bin noch immer nicht weitergekommen <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/1221468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221468</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Thu, 01 Feb 2007 23:00:56 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Thu, 01 Feb 2007 23:29:13 GMT]]></title><description><![CDATA[<p>Die einfachste Variante dürfte wohl sein &quot;\..&quot; an den Pfad anzuhängen, und den danach zu re-normalisieren. GetFullPathName sollte zum re-normalisieren funktionieren.</p>
<p>Wenn du einfach nur willst dass &quot;cd ..&quot; funktioniert brauchst du garnix speziell zu handhaben, du hängst einfach (&quot;\&quot; + input) an den aktuellen Pfad an und re-normalisiert den Pfad danach. Das geht dann für &quot;cd .&quot;, &quot;cd ..&quot;, &quot;cd blah&quot;, &quot;cd .\blah&quot; und auch für irre Sachen wie &quot;cd x\.\.\.\.\..\x\.\..\x\..\..&quot;.</p>
<p>Die Windows Shell (cmd.exe) behandelt macht das auch so oder so ähnlich - statt &quot;cd ..&quot; kannst du ohne weiteres auch &quot;cd .\foo\..\..&quot; schreiben - ob &quot;foo&quot; dabei existiert oder nicht spielt dabei keine Rolle, da der Pfad re-normalisiert wird _bevor_ geprüft wird ob es ihn überhaupt gibt <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/1221476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221476</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 01 Feb 2007 23:29:13 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 00:04:37 GMT]]></title><description><![CDATA[<p>Danke für die Antwort,</p>
<p>also das mit den doppelslashes hab ich eh gemacht, leider weiss ich nicht ganz was du mit renormalisieren meinst, aber du hast mich trotzdem auf ne Idee gebracht.</p>
<p>Ich arbeite sie mal aus und dann poste ich was dabei rausgekommen ist^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221481</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 00:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 08:49:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hmmm also der neue Source sieht so aus:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;string.h&gt;

//Notizen: Am Schluss bearbeiten, lokal speichern

HANDLE fHandle; 
WIN32_FIND_DATA wfd; 

int dir(char param[]);

char option[200];
char doppelslash[3]=&quot;\\&quot;;
char stern[4]=&quot;**&quot;;

int main()

{
char param[200]=&quot;C:\\&quot;;

dir(param);

return 0;
}

int dir(char param[])

{

system(&quot;cls&quot;);

char parameter[200]=&quot;&quot;;
lstrcat(parameter,param);

char VerzeichnisVersion[200]=&quot;&quot;;
lstrcat(VerzeichnisVersion,parameter);
lstrcat(VerzeichnisVersion,stern);

fHandle=FindFirstFile(VerzeichnisVersion,&amp;wfd); 

do 
{ 

    if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) 
    { 
        if (wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) 
        { 
                   printf(&quot;%s&quot;,wfd.cFileName);
		      printf(&quot; DIR\n&quot;);

		//SUCHFUNKTION nicht vergessen
        } 

        else 
        { 
           printf(&quot;%s\n&quot;,wfd.cFileName);
        } 

    } 

} 
while (FindNextFile(fHandle,&amp;wfd)); 

FindClose(fHandle);

char thisparam[200];

scanf(&quot;%s&quot;,&amp;option);
if (option==&quot;DIR&quot;)
{
scanf(&quot;%s&quot;,&amp;thisparam); //liest Verzeichnis-Ergänzung ein
lstrcat(param,thisparam);
lstrcat(param, doppelslash);
dir(param);

return 0;
}

}
</code></pre>
<p>Jetzt steh ich aber in einer totalen Sackgasse.<br />
Denn:</p>
<p>Auf der einen Seite will, dass die dir funktion aufhöhrt, sofern der dir befehl nicht eingegeben wird, auf der anderen seit muss die um eine Stufe niedere Instantz aber weitermachen wenn die dir funktion aufhöhrt.</p>
<p>Die einzige Lösung die ich sehe sind zwei verschiedene, ähnliche Funktionen<br />
die sich gegenseitig aufrufen.</p>
<p>Hmmm hat jmd von euch ne bessere Idee?</p>
<p>Ich häng da nämlich echt fest.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221553</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 08:49:19 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 09:05:17 GMT]]></title><description><![CDATA[<p>meine idee waere das du das auslesen des verzeichnisses auslagerst</p>
<p>//</p>
<pre><code class="language-cpp">int dir(char param[]){
.
.
.
ReadContent();
.
.
.
}

void ReadContent(){
    fHandle=FindFirstFile(VerzeichnisVersion,&amp;wfd);
    do{
    .
    .
    }while(..);
    FindClose(fHandle);
}
</code></pre>
<p>da du mit dir ja immer nur den inhalt des aktuellen verzeichnisses brauchst und nicht tiefer, brauchst du auch nichts rekursives</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221560</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 02 Feb 2007 09:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 09:25:59 GMT]]></title><description><![CDATA[<p>Hallo, thx für die antwort,gut, denn diese Idee ist mir auch gekommen nur weiss ich eben leider ned wie ich dann das mit dem Pfad anpassen regeln soll somit bin ich da auch steckengeblieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221573</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 09:25:59 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 12:02:06 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>sry ich hab da was verwechselt/missverstanden.</p>
<p>Auch bei der cmd wird bei dir ja nur angezeigt und der Pfad nicht verändert.</p>
<p>ne andere Frage:</p>
<p>wenn ich jetzt zb drei mal dir eingebe</p>
<p>gibts dann bei der cmd irgendeinen befehl um dahin zurückzukommen wo ich mit dem zweiten dir hingekommen bin?</p>
<p>oder muss ich wieder vom ausgangsverzeichnis zwei mal dir eingeben?</p>
<p>Und: in den überordner kommt man doch mit cd oder?</p>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221686</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 12:02:06 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 12:12:56 GMT]]></title><description><![CDATA[<p>zurueckkommen mit dir ?</p>
<p>dir zeigt doch nur das aktuelle verzeichnis an - und mehr macht doch deine funktion auch nicht<br />
verzeichniswechsel sind doch immer mit cd path oder cd.. fuer zurueck</p>
<p>das man mit dir ein verzeichnix wechselt usw ist mir neu - also macht die aussage:</p>
<blockquote>
<p>gibts dann bei der cmd irgendeinen befehl um dahin zurückzukommen wo ich mit dem zweiten dir hingekommen bin?</p>
</blockquote>
<p>irgendwie keinen sinn</p>
<blockquote>
<p>wenn ich jetzt zb drei mal dir eingebe</p>
</blockquote>
<p>bekommst du drei mal den inhalt des aktuellen verzeichnisses angezeigt<br />
und drei mal dir hintereinander ist kein sinnvoller command</p>
<blockquote>
<p>Und: in den überordner kommt man doch mit cd oder?</p>
</blockquote>
<p>mit cd.. ja</p>
<p>.. bedeutet eins davor<br />
. bedeutet aktuelles verzeichnis</p>
<p>in verzeichnis wechseln:</p>
<pre><code>cd Path1\Path2
</code></pre>
<p>eins zurueck</p>
<pre><code>cd..
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1221695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221695</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 02 Feb 2007 12:12:56 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 12:17:57 GMT]]></title><description><![CDATA[<p>Sry, ich formulier immer etwas ungenau,</p>
<p>zb diese Einagabe</p>
<p>C:\dir<br />
dir Dokumente und Einstellungen<br />
dir Username</p>
<p>so meinte ich drei dir befehle, sry.</p>
<p>und was ich jetzt gerne machn würde is, während ich bei der Auflistung mit dir im Username Verzeichnis bin, durch einen befehl wieder ins Überverzeichnis, dieser Kette kommen. (bei meinem Programm)</p>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221701</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 12:17:57 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 13:16:24 GMT]]></title><description><![CDATA[<p>Ich hab mir das so überlegt, dass ich es bei der Rekursion so gestalte, dass wenn die Funktion keinen dir befehl bekommt 0 zurückgibt und die Instanz die sie aufgerufen hat ,also f(n-1) sozusagen, nochmal checkt obs cd oder eingabetaste ist.</p>
<p>bei eingabetaste wird das hiesige Verzeichnis aufgelistet, bei CD gehts wieder eine Instanz runter usw.</p>
<p>Leider klappt die Umsetzung noch nicht so ganz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221733</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 13:16:24 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 13:17:33 GMT]]></title><description><![CDATA[<p>&quot;nochmal checkt obs cd oder eingabetaste ist. &quot;, damit meine ich eine erneute Abfrage</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1221738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221738</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 13:17:33 GMT</pubDate></item><item><title><![CDATA[Reply to dateimanager on Fri, 02 Feb 2007 13:21:58 GMT]]></title><description><![CDATA[<p>Also in etwa so, aber leider weiss ich nicht wie das genau gehen soll.</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;string.h&gt;

//Notizen: Am Schluss bearbeiten, lokal speichern

HANDLE fHandle;
WIN32_FIND_DATA wfd;

int dir(char param[]);

char option[200];
char doppelslash[3]=&quot;\\&quot;;
char stern[4]=&quot;**&quot;;

int main()

{
char param[200]=&quot;C:\\&quot;;

dir(param);

return 0;
}

int dir(char param[])

{

char parameter[200]=&quot;&quot;;
lstrcat(parameter,param);

char VerzeichnisVersion[200]=&quot;&quot;;
lstrcat(VerzeichnisVersion,parameter);
lstrcat(VerzeichnisVersion,stern);

Anfang:
fHandle=FindFirstFile(VerzeichnisVersion,&amp;wfd);

do
{

    if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
    {
        if (wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
        {
                   printf(&quot;%s&quot;,wfd.cFileName);
                   printf(&quot; DIR\n&quot;);

        //SUCHFUNKTION nicht vergessen
        }

        else
        {
           printf(&quot;%s\n&quot;,wfd.cFileName);
        }

    }

}
while (FindNextFile(fHandle,&amp;wfd));

FindClose(fHandle);

char thisparam[200];

scanf(&quot;%s&quot;,&amp;option);
if (option==&quot;DIR&quot;)
{
scanf(&quot;%s&quot;,&amp;thisparam); //liest Verzeichnis-Ergänzung ein
lstrcat(param,thisparam);
lstrcat(param, doppelslash);
dir(param);
if (option==&quot;DIR&quot;)
{
scanf(&quot;%s&quot;,&amp;option);
goto Anfang;
}
return 0;
}

return 0;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1221739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221739</guid><dc:creator><![CDATA[Julio]]></dc:creator><pubDate>Fri, 02 Feb 2007 13:21:58 GMT</pubDate></item></channel></rss>