<?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[Funktion um Dateien zu kopieren, und das Zielverzeichnis automatisch zu erzeugen falls es nicht existiert]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche eine Funktion, der ich zwei Dateien übergebe (inkl. absolutem Pfad). So ähnlich wie</p>
<pre><code>BOOL WINAPI CopyFile(
  __in  LPCTSTR lpExistingFileName,
  __in  LPCTSTR lpNewFileName,
  __in  BOOL bFailIfExists
);
</code></pre>
<p>Nur hätte ich gerne, dass das Zielverzeichnis, falls es nicht existiert, automatisch erzeugt wird.</p>
<p>Irgendwelche Vorschläge?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211964/funktion-um-dateien-zu-kopieren-und-das-zielverzeichnis-automatisch-zu-erzeugen-falls-es-nicht-existiert</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 02:03:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211964.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Apr 2008 16:02:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion um Dateien zu kopieren, und das Zielverzeichnis automatisch zu erzeugen falls es nicht existiert on Tue, 29 Apr 2008 16:02:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche eine Funktion, der ich zwei Dateien übergebe (inkl. absolutem Pfad). So ähnlich wie</p>
<pre><code>BOOL WINAPI CopyFile(
  __in  LPCTSTR lpExistingFileName,
  __in  LPCTSTR lpNewFileName,
  __in  BOOL bFailIfExists
);
</code></pre>
<p>Nur hätte ich gerne, dass das Zielverzeichnis, falls es nicht existiert, automatisch erzeugt wird.</p>
<p>Irgendwelche Vorschläge?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500662</guid><dc:creator><![CDATA[Gast34507]]></dc:creator><pubDate>Tue, 29 Apr 2008 16:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion um Dateien zu kopieren, und das Zielverzeichnis automatisch zu erzeugen falls es nicht existiert on Tue, 29 Apr 2008 18:29:13 GMT]]></title><description><![CDATA[<pre><code>//****************************************************************************
//*
//*		CreatePath
//*
//****************************************************************************
//	Erzeugt einen Pfad rekuriv in dem alle Verzeichnisser erstellt werden.
//	pPath	: Ist der name des Pfades.
//			  Am Ende des Pfades kann auch ein '\' oder '/' stehen.
//	Ergibt 0 bei einem Fehler
//		   1 wenn der Pfad erzeugt wurde
//		   2 wenn der Pfad bereits existiert
int _cdecl CreatePath(const char *pPath)
{
int		i,iLen,iDrive,iPos,iNew,iStart=0;
char	cSign,cBuffer[MAX_PATH+16]=&quot;&quot;;
DWORD	dwAttr;

	if(pPath[0] &amp;&amp; pPath[1]==':')						// Laufwerk prüfen
		{
		iDrive=pPath[0];
		if(iDrive&gt;='a' &amp;&amp; iDrive&lt;='z')iDrive-=32;
		if(iDrive&lt; 'A' || iDrive&gt; 'Z')return 0;			// Falsche Laufwerksnummer
		   iDrive-='A';

		if(!(GetLogicalDrives()&amp;(1&lt;&lt;iDrive)))			// Existiert Laufwerk
			{
			return 0;
			}
		}

		iLen=GetFullPathNameA(pPath,MAX_PATH,cBuffer,0);
	if((iLen&gt;=3)&amp;&amp;(cBuffer[iLen-2]==':')&amp;&amp;(cBuffer[iLen-1]=='/' || cBuffer[iLen-1]=='\\'))
		{
		return 2;										// Pfad ist Laufwerk
		}

	if(iLen)											// '/' am Ende entfernen
	if(cBuffer[iLen-1]=='/' || cBuffer[iLen-1]=='\\')
		{
		iLen--;
		cBuffer[iLen]=0;
		}

	if(iLen&gt;=2)											// Ist Pfad Netzlaufwerk '\\...'
	if(cBuffer[0]=='\\' &amp;&amp; cBuffer[1]=='\\')
		{
		for(i=2;i&lt;iLen;i++)
			{
			if(cBuffer[i]=='/' )break;
			if(cBuffer[i]=='\\')break;
			}
		if(i&gt;=iLen)return 2;

		iStart=i+1;
		}
	else{
		iStart=0;
		}

	   dwAttr=GetFileAttributesA(cBuffer);				// Existiert Pfad bereits ?
	if(dwAttr!=0xFFFFFFFF)
		{
		return (dwAttr&amp;FILE_ATTRIBUTE_DIRECTORY)? 2:0;
		}

	iNew = 0;
	iPos = strcspn(cBuffer+iStart,&quot;\\/&quot;)+iStart;

	while(iPos&lt;iLen)
		{
		if(cBuffer[iPos])iPos++;
		i=strcspn(cBuffer+iPos,&quot;\\/&quot;);
		if(!i)return 0;
		iPos+=i;

		cSign=cBuffer[iPos];
			  cBuffer[iPos]=0;

		if(!iNew)
			{
			   dwAttr=GetFileAttributesA(cBuffer);		// Existiert Pfad ?
			if(dwAttr!=0xFFFFFFFF)
				{
				cBuffer[iPos]=cSign;
				continue;
				}

			iNew=1;
			}

		if(!CreateDirectoryA(cBuffer,NULL))				// Verzeichnis erzeugen ?
			{
			return 0;
			}

		cBuffer[iPos]=cSign;
		};

return 1;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1500747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500747</guid><dc:creator><![CDATA[AZ]]></dc:creator><pubDate>Tue, 29 Apr 2008 18:29:13 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion um Dateien zu kopieren, und das Zielverzeichnis automatisch zu erzeugen falls es nicht existiert on Wed, 30 Apr 2008 17:24:48 GMT]]></title><description><![CDATA[<p>Super, vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1501346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1501346</guid><dc:creator><![CDATA[Gast34507]]></dc:creator><pubDate>Wed, 30 Apr 2008 17:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion um Dateien zu kopieren, und das Zielverzeichnis automatisch zu erzeugen falls es nicht existiert on Fri, 02 May 2008 14:32:34 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502129</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Fri, 02 May 2008 14:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion um Dateien zu kopieren, und das Zielverzeichnis automatisch zu erzeugen falls es nicht existiert on Fri, 02 May 2008 19:49:48 GMT]]></title><description><![CDATA[<p>Alternativ:</p>
<p>MakeSureDirectoryPathExists: <a href="http://msdn.microsoft.com/en-us/library/ms680352(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms680352(VS.85).aspx</a><br />
SHCreateDirectory: <a href="http://msdn.microsoft.com/en-us/library/bb762130(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb762130(VS.85).aspx</a><br />
SHPathPrepareForWrite: <a href="http://msdn.microsoft.com/en-us/library/bb762237(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb762237(VS.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1502301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502301</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Fri, 02 May 2008 19:49:48 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion um Dateien zu kopieren, und das Zielverzeichnis automatisch zu erzeugen falls es nicht existiert on Fri, 02 May 2008 20:22:53 GMT]]></title><description><![CDATA[<p>Das einfachste ist aber wohl<br />
SHFileOperation<br />
...</p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb762164" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb762164</a><br />
<a href="http://msdn.microsoft.com/en-us/library/bb759795" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb759795</a></p>
<blockquote>
<p>Copy and Move operations can specify destination directories that do not exist. In those cases, the system attempts to create them and normally displays a dialog box to ask the user if they want to create the new directory. To suppress this dialog box and have the directories created silently, set the FOF_NOCONFIRMMKDIR flag in fFlags.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1502321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1502321</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 02 May 2008 20:22:53 GMT</pubDate></item></channel></rss>