<?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 auswählen mit CFileDialog]]></title><description><![CDATA[<p>Hi,<br />
dass man mit CFileDialog Dateien auswählen kann, weiß ich.<br />
Ich würde aber gerne Ordner auswählen. Hat da einer einen Tip?<br />
Alternativ ginge es auch, wenn mir jemand sagte, wie ich, analog zum Explorer, dazu komme, auch die Netzwerkumgebung zu durchsuchen. GetLogicalDrives liefert nur die Laufwerke auf dem Rechner, nicht aber die im Netzwerk. Wenn es so eine Funktion gäbe, könnte ich mit die Dialogbox selber basteln.</p>
<p>Danke<br />
Jens <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188951/ordner-auswählen-mit-cfiledialog</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 23:04:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188951.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Aug 2007 16:31:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ordner auswählen mit CFileDialog on Mon, 06 Aug 2007 16:31:59 GMT]]></title><description><![CDATA[<p>Hi,<br />
dass man mit CFileDialog Dateien auswählen kann, weiß ich.<br />
Ich würde aber gerne Ordner auswählen. Hat da einer einen Tip?<br />
Alternativ ginge es auch, wenn mir jemand sagte, wie ich, analog zum Explorer, dazu komme, auch die Netzwerkumgebung zu durchsuchen. GetLogicalDrives liefert nur die Laufwerke auf dem Rechner, nicht aber die im Netzwerk. Wenn es so eine Funktion gäbe, könnte ich mit die Dialogbox selber basteln.</p>
<p>Danke<br />
Jens <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339702</guid><dc:creator><![CDATA[jensb444]]></dc:creator><pubDate>Mon, 06 Aug 2007 16:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to Ordner auswählen mit CFileDialog on Mon, 06 Aug 2007 18:11:47 GMT]]></title><description><![CDATA[<p>Um Ordner auszuwählen, bzw. nach ihnen zu suchen in einem Dialog, dafür gibt es SHBrowseForFolder. Hier zwei Links:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39127.html" rel="nofollow">FAQ-Eintrag</a><br />
<a href="http://msdn2.microsoft.com/en-us/library/ms647664.aspx" rel="nofollow">MSDN-Eintrag</a></p>
<p>Um dir die Netzwerkharddisks aufzulisten, solltest du wohl folgende Funktion benutzen:<br />
<a href="http://msdn2.microsoft.com/en-us/library/Aa385478.aspx" rel="nofollow">WNetOpenEnum</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339737</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 06 Aug 2007 18:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to Ordner auswählen mit CFileDialog on Mon, 06 Aug 2007 18:46:38 GMT]]></title><description><![CDATA[<p>Bei dem OpenEnum bin ich auch schon gelandet:</p>
<pre><code class="language-cpp">LPTSTR lpLocalName=NULL; 
    LPTSTR lpRemoteName=NULL; 
    LPTSTR lpComment=NULL; 
    LPTSTR lpProvider=NULL;
	NETRESOURCE ntr;
	 ntr.dwScope=RESOURCE_GLOBALNET;
	 ntr.dwType=RESOURCETYPE_DISK;
	 ntr.dwDisplayType=RESOURCEDISPLAYTYPE_SHARE;
	 ntr.dwUsage=RESOURCEUSAGE_CONTAINER;
	 ntr.lpLocalName=lpLocalName;
	 ntr.lpRemoteName=lpRemoteName; 
	 ntr.lpComment=lpComment;
	 ntr.lpProvider=lpProvider;
	 LPHANDLE lphEnum=NULL;
	int z=WNetOpenEnum(
			RESOURCE_GLOBALNET,     // scope of enumeration
			RESOURCETYPE_DISK,      // resource types to list
			RESOURCEUSAGE_CONTAINER,     // resource usage to list
			&amp;ntr,
            lphEnum         // pointer to resource structure
			   // pointer to enumeration handle buffer
);
</code></pre>
<p>Leider liefert OpenEnum 487 zurück, ERROR_INVALID_ADDRESS.<br />
was kann man da denn machen?<br />
Gruß Jens</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339757</guid><dc:creator><![CDATA[jensb444]]></dc:creator><pubDate>Mon, 06 Aug 2007 18:46:38 GMT</pubDate></item><item><title><![CDATA[Reply to Ordner auswählen mit CFileDialog on Tue, 07 Aug 2007 09:32:34 GMT]]></title><description><![CDATA[<p>Lies den Fehler und schau dir deinen Code an. Ich habe noch nie damit gearbeitet, aber ich nehme schwer an, dass wenn du NETRESOURCE angibst, du nicht die Strings auf NULL setzen darfst. Zumindest genau so kommt mir der Fehler rüber. Ich habe nun auch ein wenig getestet und dabei noch ein Beispiel gefunden:<br />
<a href="http://msdn2.microsoft.com/en-us/library/aa385341.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/aa385341.aspx</a></p>
<p>Hier noch mein Code, den ich kurz zusammen geschnipselt habe:</p>
<pre><code class="language-cpp">/////////////////////////////////////////////////////////////////////////////////
// main.cpp : Implementation file

#include &lt;iostream&gt;
#include &lt;conio.h&gt;

#include &quot;windows.h&quot;
#include &quot;Winnetwk.h&quot;   // Lib nicht vergessen ;)

int main()
{
	HANDLE hEnumeration;

	DWORD dwReturn = ::WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, NULL, &amp;hEnumeration);

	if(dwReturn != NO_ERROR)
	{
		std::cout &lt;&lt; &quot;Error&quot; &lt;&lt; std::endl;
		return dwReturn;
	}

	DWORD dwCount = -1;
	DWORD dwBufferSize = 16384;
	BYTE* pbBuffer = new BYTE[dwBufferSize];
	NETRESOURCE* pNetresource = NULL;

	do
	{
		dwReturn = ::WNetEnumResource(hEnumeration, &amp;dwCount, pbBuffer, &amp;dwBufferSize);

		pNetresource = reinterpret_cast&lt;NETRESOURCE*&gt;(pbBuffer);

		for(DWORD n = 0; n &lt; dwCount; ++n)
		{
            // Wenn du diese if-Anweisung weg nimmst, listet der irgendwie alles auf.
            // Hab die Auflistung selber wohl auch noch nicht ganz durchblickt.
            // wcout hier, weil ich mit Widebyte compiliert habe.
			if(pNetresource[n].dwType == RESOURCETYPE_DISK)
			{ std::wcout &lt;&lt; pNetresource[n].lpRemoteName &lt;&lt; std::endl; }
		}
	}
	while(dwReturn == ERROR_MORE_DATA);

	delete[] pbBuffer;

	_getch();

    return 0;
}
</code></pre>
<p>Ich hoffe das hilft dir weiter. Ich selber will mich jetzt damit nicht weiter beschäftigen, da ich es ja schliesslich nicht brauche *g* <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339793</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 07 Aug 2007 09:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to Ordner auswählen mit CFileDialog on Mon, 06 Aug 2007 20:40:57 GMT]]></title><description><![CDATA[<p>Vielen Dank Dravere! <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/1339822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339822</guid><dc:creator><![CDATA[jensb444]]></dc:creator><pubDate>Mon, 06 Aug 2007 20:40:57 GMT</pubDate></item><item><title><![CDATA[Reply to Ordner auswählen mit CFileDialog on Tue, 07 Aug 2007 08:03:03 GMT]]></title><description><![CDATA[<p>Kleine Korrektur:</p>
<pre><code class="language-cpp">delete pucBuffer;
</code></pre>
<p>muss natürlich</p>
<pre><code class="language-cpp">delete [] pbBuffer;
</code></pre>
<p>heissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339925</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Tue, 07 Aug 2007 08:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to Ordner auswählen mit CFileDialog on Tue, 07 Aug 2007 09:32:09 GMT]]></title><description><![CDATA[<p>jencas schrieb:</p>
<blockquote>
<p>Kleine Korrektur:</p>
<pre><code class="language-cpp">delete pucBuffer;
</code></pre>
<p>muss natürlich</p>
<pre><code class="language-cpp">delete [] pbBuffer;
</code></pre>
<p>heissen.</p>
</blockquote>
<p>Ups, hab noch nach dem Copy&amp;Paste etwas nachkorrigiert, never touch a running system. <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="😃"
    /><br />
Korrigiere es gleich noch oben im Code, sonst hat es halt ein schönes Speicherleck <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1339973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1339973</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 07 Aug 2007 09:32:09 GMT</pubDate></item></channel></rss>