<?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[Hilfe bei Ordnergröße ermitteln mit Code]]></title><description><![CDATA[<p>Hallo, habe folgende Funktion aus einer Klasse kopiert:</p>
<pre><code class="language-cpp">DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders)
{
	TCHAR szFileFilter[512];
	TCHAR szFilePath[512];
	HANDLE hFind = NULL;
	WIN32_FIND_DATA fileinfo;
	DWORD64    dwSize = 0;

	strcpy(szFilePath,szPath);
	strcat(szFilePath,&quot;\\&quot;);
	strcpy(szFileFilter,szFilePath);
	strcat(szFileFilter,&quot;*.*&quot;);

	hFind = FindFirstFile(szFileFilter,&amp;fileinfo);
	do
	{
		if(fileinfo.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
		{
			if (!strcmp(fileinfo.cFileName,&quot;.&quot;) || !strcmp(fileinfo.cFileName,&quot;..&quot;))
			{
				//Do nothing for &quot;.&quot; and &quot;..&quot; folders
			}
			else
			{
				TCHAR sztmp[512];
				strcpy(sztmp,szFilePath);
				strcat(sztmp,fileinfo.cFileName);
				dwSize = dwSize + GetFolderSize(sztmp);
				if(dwFolders != NULL)
				{
					++(*dwFolders);
				}
			}
		}
		else
		{
			if(dwFiles != NULL)
			{
				++(*dwFiles);
			}
		}

		dwSize += fileinfo.nFileSizeLow;

	}while(FindNextFile(hFind,&amp;fileinfo));

	FindClose(hFind);
	return dwSize;

}
</code></pre>
<p>So jetzt weiß ich nicht wofür die letzten beiden Parameter stehen, der erste muss ja wahrscheinlich für den Pfad stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185373/hilfe-bei-ordnergröße-ermitteln-mit-code</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 14:54:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185373.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Jun 2007 20:44:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Sun, 24 Jun 2007 20:44:57 GMT]]></title><description><![CDATA[<p>Hallo, habe folgende Funktion aus einer Klasse kopiert:</p>
<pre><code class="language-cpp">DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders)
{
	TCHAR szFileFilter[512];
	TCHAR szFilePath[512];
	HANDLE hFind = NULL;
	WIN32_FIND_DATA fileinfo;
	DWORD64    dwSize = 0;

	strcpy(szFilePath,szPath);
	strcat(szFilePath,&quot;\\&quot;);
	strcpy(szFileFilter,szFilePath);
	strcat(szFileFilter,&quot;*.*&quot;);

	hFind = FindFirstFile(szFileFilter,&amp;fileinfo);
	do
	{
		if(fileinfo.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
		{
			if (!strcmp(fileinfo.cFileName,&quot;.&quot;) || !strcmp(fileinfo.cFileName,&quot;..&quot;))
			{
				//Do nothing for &quot;.&quot; and &quot;..&quot; folders
			}
			else
			{
				TCHAR sztmp[512];
				strcpy(sztmp,szFilePath);
				strcat(sztmp,fileinfo.cFileName);
				dwSize = dwSize + GetFolderSize(sztmp);
				if(dwFolders != NULL)
				{
					++(*dwFolders);
				}
			}
		}
		else
		{
			if(dwFiles != NULL)
			{
				++(*dwFiles);
			}
		}

		dwSize += fileinfo.nFileSizeLow;

	}while(FindNextFile(hFind,&amp;fileinfo));

	FindClose(hFind);
	return dwSize;

}
</code></pre>
<p>So jetzt weiß ich nicht wofür die letzten beiden Parameter stehen, der erste muss ja wahrscheinlich für den Pfad stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1313003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1313003</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Sun, 24 Jun 2007 20:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Mon, 25 Jun 2007 06:08:44 GMT]]></title><description><![CDATA[<p>Am besten man liest den Code!<br />
dwFiles ist ein Zeiger auf einen DWORD und zählt die Dateien (nicht die Größe), dwFolders zählt die Verzeichnisse.</p>
<p>Die Notationist falsch. gemäß hungarian noation müssten diese Variablen pdwFiles und pdwFolders heißen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1313096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1313096</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 25 Jun 2007 06:08:44 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Mon, 25 Jun 2007 11:59:29 GMT]]></title><description><![CDATA[<p>Was müsste man am Code ändern, dass nur der Pfad als Parameter erwartet wird, damit man diese Funktion aufrufen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1313271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1313271</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Mon, 25 Jun 2007 11:59:29 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Mon, 25 Jun 2007 12:27:41 GMT]]></title><description><![CDATA[<p>Versteh den Code, dann kannst du ihn selbst ändern. <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="😉"
    /> <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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1313299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1313299</guid><dc:creator><![CDATA[gosha16]]></dc:creator><pubDate>Mon, 25 Jun 2007 12:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Mon, 25 Jun 2007 12:45:26 GMT]]></title><description><![CDATA[<p>Du könntest den beiden Zähler-Variablen den Default-Wert NULL mitgeben - oder ganz einfach jede Erwähnung dieser Variablen aus der Funktion aussortieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1313318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1313318</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 25 Jun 2007 12:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Mon, 25 Jun 2007 19:41:59 GMT]]></title><description><![CDATA[<p>So besser?</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;iostream&gt;

using namespace std;

DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders)
{
	TCHAR szFileFilter[512];
	TCHAR szFilePath[512];
	HANDLE hFind = NULL;
	WIN32_FIND_DATA fileinfo;
	DWORD64    dwSize = 0;

	strcpy(szFilePath,szPath);
	strcat(szFilePath,&quot;\\&quot;);
	strcpy(szFileFilter,szFilePath);
	strcat(szFileFilter,&quot;*.*&quot;);

	hFind = FindFirstFile(szFileFilter,&amp;fileinfo);
	do
	{
		if(fileinfo.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)
		{
			if (!strcmp(fileinfo.cFileName,&quot;.&quot;) || !strcmp(fileinfo.cFileName,&quot;..&quot;))
			{
				//Do nothing for &quot;.&quot; and &quot;..&quot; folders
			}
			else
			{
				TCHAR sztmp[512];
				strcpy(sztmp,szFilePath);
				strcat(sztmp,fileinfo.cFileName);
				dwSize = dwSize + GetFolderSize(sztmp, dwFiles, dwFolders);
				if(dwFolders != NULL)
				{
					++(*dwFolders);
				}
			}
		}
		else
		{
			if(dwFiles != NULL)
			{
				++(*dwFiles);
			}
		}

		dwSize += fileinfo.nFileSizeLow;

	}while(FindNextFile(hFind,&amp;fileinfo));

	FindClose(hFind);
	return dwSize;

}

int main()
{
	double size = GetFolderSize(&quot;c:\\wallpaper&quot;, NULL, NULL);
	cout &lt;&lt; (size/1024)/1024 &lt;&lt; &quot;MB (&quot; &lt;&lt; size/1024 &lt;&lt; &quot;KB)&quot; &lt;&lt; endl;

	system(&quot;pause&quot;);
	return 0;
}
</code></pre>
<p>Testet mal bei euch, hab paar kleine Rundungsfehler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1313629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1313629</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Mon, 25 Jun 2007 19:41:59 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Tue, 26 Jun 2007 16:19:20 GMT]]></title><description><![CDATA[<p>Also wenn niemand hier was schreibt, dann müsste es wohl richtig sein oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314155</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Tue, 26 Jun 2007 16:19:20 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Tue, 26 Jun 2007 16:44:53 GMT]]></title><description><![CDATA[<p>kernel64 schrieb:</p>
<blockquote>
<p>Was müsste man am Code ändern, dass nur der Pfad als Parameter erwartet wird, damit man diese Funktion aufrufen kann?</p>
</blockquote>
<p>wenn das deine frage ist: Nein! die pointer stehn doch immer noch in der funktion. entweder dir ist es egal wie viel vom endergebnis denn nun ordner, und wie viel davon files sind oder du lässt dir sowas zurückgeben</p>
<pre><code class="language-cpp">typedef struct FFolderSize
{
     DWORD Files;
     DWORD Folders;
}FolderSize;
</code></pre>
<p>wenn man die unterornder nicht beachtet wirds dann ne recht kompakte schleife: einfach nur für jedes gefundene file ein ++found oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314176</guid><dc:creator><![CDATA[~eddi~]]></dc:creator><pubDate>Tue, 26 Jun 2007 16:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei Ordnergröße ermitteln mit Code on Wed, 27 Jun 2007 06:58:16 GMT]]></title><description><![CDATA[<p>Wie ich schon sagte: Default-Parameter:</p>
<pre><code class="language-cpp">DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles=NULL, DWORD *dwFolders=NULL)
{
  ...
}
</code></pre>
<p>(das bewirkt, daß die Parameter dwFiles und dwFolders automatisch auf NULL gesetzt werden, wenn du die Funktion nur mit einem Pfadnamen aufrufst (und in der Funktion bewirkt das, daß die Dateien und Ordner nicht mitgezählt werden))</p>
<p>PS: Die Rundungsfehler könnten daher kommen, daß ein double nur begrenzte Genauigkeit hat - der kann eine 64-Bit-Zahl nicht bis auf die letzte Ziffer exakt darstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1314487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1314487</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 27 Jun 2007 06:58:16 GMT</pubDate></item></channel></rss>