<?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[SHFileOperation]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne in meiner Anwendung dem Benutzer ermöglichen an gewissen Dateien und Ordnerstrukturen etwas ändern, diese Änderung aber mit einem Klick auf Abbrechen rückgängig machen zu können.<br />
Dazu möchte ich ein Verzeichniss mit allen Dateien und Unterverzeichnissen an einen anderen Ort kopieren (oder verschieben), um ihn bei bedarf zurück in den Ursprungspfad zu holen.</p>
<p>Gibt es da irgendwo 'ne passende Funktion? Oder wie wird das gemacht? Ich bin leider im Umgang mit Dateien wenig erfahren. Hab' schon ziemlich lange im Web gesucht, aber absolut nichts Passendes gefunden. Scheint nicht so einfach zu sein.</p>
<p>Ich hoffe mir kann da jemand helfen, wäre echt super, bin schon 'nen bisschen verzweifelt.</p>
<p>Vielen Dank schon mal,<br />
teichi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/106678/shfileoperation</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 22:42:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/106678.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Apr 2005 15:17:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SHFileOperation on Thu, 14 Apr 2005 15:18:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde gerne in meiner Anwendung dem Benutzer ermöglichen an gewissen Dateien und Ordnerstrukturen etwas ändern, diese Änderung aber mit einem Klick auf Abbrechen rückgängig machen zu können.<br />
Dazu möchte ich ein Verzeichniss mit allen Dateien und Unterverzeichnissen an einen anderen Ort kopieren (oder verschieben), um ihn bei bedarf zurück in den Ursprungspfad zu holen.</p>
<p>Gibt es da irgendwo 'ne passende Funktion? Oder wie wird das gemacht? Ich bin leider im Umgang mit Dateien wenig erfahren. Hab' schon ziemlich lange im Web gesucht, aber absolut nichts Passendes gefunden. Scheint nicht so einfach zu sein.</p>
<p>Ich hoffe mir kann da jemand helfen, wäre echt super, bin schon 'nen bisschen verzweifelt.</p>
<p>Vielen Dank schon mal,<br />
teichi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/764908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764908</guid><dc:creator><![CDATA[teichi]]></dc:creator><pubDate>Thu, 14 Apr 2005 15:18:54 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Tue, 12 Apr 2005 16:51:13 GMT]]></title><description><![CDATA[<p>du könntest dir etwas aus hume sikkins dirstream basteln</p>
<p><a href="http://fara.cs.uni-potsdam.de/~kaufmann/dirstream/index.html" rel="nofollow">http://fara.cs.uni-potsdam.de/~kaufmann/dirstream/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/764988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/764988</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Tue, 12 Apr 2005 16:51:13 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Tue, 12 Apr 2005 21:01:19 GMT]]></title><description><![CDATA[<p><a href="http://www.boost.org/libs/filesystem/doc/index.htm" rel="nofollow">boost::filesystem</a> würde sich hierfür recht gut eignen, denke ich...<br />
Ansonsten haben die meisten GUI-Frameworks (und wenn du etwas mit einem Klick rückgängig machen lassen willst, nehme ich an, dass du GUI-Anwendungen programmierst) selber Schnittstellen zu Pfaden und Dateien. Die zu nutzen ist möglicherweise die naheliegendste Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765164</guid><dc:creator><![CDATA[kwaart]]></dc:creator><pubDate>Tue, 12 Apr 2005 21:01:19 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Tue, 12 Apr 2005 21:11:21 GMT]]></title><description><![CDATA[<p>Vielen Dank schon mal für die Antworten, ich schau's mir gleich mal an.</p>
<p>Übrigens:<br />
Ja, das ist 'ne GUI Anwendung. MFC unter Visual C++. Aber ich habe da keine Schnittstellen zu dem Thema gefunden, wäre natürlich das einfachste. Gibt es da sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765173</guid><dc:creator><![CDATA[teichi]]></dc:creator><pubDate>Tue, 12 Apr 2005 21:11:21 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Tue, 12 Apr 2005 21:36:00 GMT]]></title><description><![CDATA[<p>SHFileOperation (WinAPI)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765194</guid><dc:creator><![CDATA[SHFileOperator]]></dc:creator><pubDate>Tue, 12 Apr 2005 21:36:00 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Tue, 12 Apr 2005 21:50:19 GMT]]></title><description><![CDATA[<p>Danke für die prompte Antwort, wie ist das denn zu benutzen?<br />
Bin leider echt kein Profi.<br />
WINAPI hab'ich noch nie gemacht.<br />
Es wär schon toll, wenn ich alle Dateien in einem Verzeichniss kopieren könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765210</guid><dc:creator><![CDATA[teichi]]></dc:creator><pubDate>Tue, 12 Apr 2005 21:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Tue, 12 Apr 2005 23:30:50 GMT]]></title><description><![CDATA[<p>google?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765226</guid><dc:creator><![CDATA[loooooool]]></dc:creator><pubDate>Tue, 12 Apr 2005 23:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Wed, 13 Apr 2005 07:37:29 GMT]]></title><description><![CDATA[<p>Ok, Super!<br />
Ich kann jetzt ganze Verzeichnisse mit allem drin(Dateien + Unterverzeichnisse) in andere Verzeichnisse kopieren.</p>
<p>_SHFILEOPSTRUCTA test;</p>
<p>test.hwnd = NULL;<br />
test.wFunc = FO_COPY;<br />
test.pFrom = &quot;F:\\ver1\0&quot;;<br />
test.pTo = &quot;F:\\ver2\0&quot;;<br />
test.fFlags = NULL;</p>
<p>SHFileOperation(&amp;test);</p>
<p>Kann mir noch jemand 'nen Tipp geben wie ich nur den Inhalt von &quot;ver1&quot; nach &quot;ver2&quot; kopieren könnte? Sowas wie test.pFrom = &quot;F:\\ver1\<em>.</em>\0&quot;; klappt leider nicht. Ich hab's schon mal mit dem FOF_FILESONLY Flag versucht hat aber auch nicht hingehauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765323</guid><dc:creator><![CDATA[teichi]]></dc:creator><pubDate>Wed, 13 Apr 2005 07:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Wed, 13 Apr 2005 07:53:31 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=403" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" 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/765339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765339</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 13 Apr 2005 07:53:31 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Wed, 13 Apr 2005 12:57:20 GMT]]></title><description><![CDATA[<p>teichi schrieb:</p>
<blockquote>
<p>Sowas wie test.pFrom = &quot;F:\\ver1\<em>.</em>\0&quot;; klappt leider nicht. Ich hab's schon mal mit dem FOF_FILESONLY Flag versucht hat aber auch nicht hingehauen.</p>
</blockquote>
<p>Hast du die Kombination aus beidem auch schon getestet?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/765634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/765634</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 13 Apr 2005 12:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to SHFileOperation on Wed, 13 Apr 2005 21:32:25 GMT]]></title><description><![CDATA[<p>Vielen Dank, für Eure Hilfe, komme jetzt schon einigermaßen zurecht.<br />
Ein bisschen Schwierigkeiten habe ich allerdings noch:</p>
<p>Also, ich würde gerne den Pfadnamen, den ich kopieren möchte, aus einzelnen Strings zusammenfügen (z.B. als CString) und ihn dann bei pFrom angeben.<br />
Das Programm wird auch ohne Probleme kompiliert, jedoch bekomme ich beim ausführen die Fehlermeldung, dass Quelldatei oder Quelldatenträger nicht gelesen werden können.</p>
<p>Da pFrom ja vom Typ LPCTSTR ist, habe ich versucht nach dem Zusammenfügen der einzelnen Strings, diese in LPCTSTR bzw. const char* umzuwandeln, das führt aber zum gleichen Fehler.<br />
Nur wenn ich vorher eine Variable vom Typ const char* erzeuge und ihr direkt einen kompletten Pfadnamen zuweise, funktioniert das kopieren, wenn ich diese Variable pFrom zuweise. (Im Codeausschnitt From5)</p>
<pre><code class="language-cpp">CString From = &quot;F:\\&quot;+&quot;ver1&quot;+&quot;\0&quot;;  
   int nLen = From.GetLength();  
   LPCTSTR From2 = From.GetBuffer(nLen);
   const char* From3 = From.GetBuffer(nLen);
   const char* From4= (LPCTSTR) From;
   const char* From5= &quot;F:\\ver1\0&quot;;

    _SHFILEOPSTRUCTA test;

    test.hwnd   = NULL;
    test.wFunc  = FO_COPY;
    test.pFrom  = From5;  //bei allen anderen &quot;Froms&quot; wird zwar kompiliert,                                
                          //aber kopieren geht schief
    test.pTo    = &quot;F:\\ver2\0&quot;;
    test.fFlags = NULL;

    SHFileOperation(&amp;test);

    From.ReleaseBuffer();
</code></pre>
<p>Gibt's da irgend'ne Möglichkeit erst zur Laufzeit über die Zusammensetzung des Pfades zu entscheiden?</p>
<p>Noch ein Problem:<br />
Ich würde gerne nicht den kompletten Pfad angeben müssen, sondern aus dem aktuellen Verzeichniss heraus navigieren. Also z.B.: mit &quot;../&quot; eine Verzeichniss-Hierarchy (hoffentlich richtig geschrieben) tiefer gehen. Da ich noch nicht weiss in welchem Verzeichniss und auf was für einem Laufwerk mein Programm liegen wird. Bei den normalen fstream.h-Methoden ist das ja beispielsweise möglich, mit SHFileOperation auch?</p>
<p>Danke, für die Mühe.<br />
teichi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/766169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/766169</guid><dc:creator><![CDATA[teichi]]></dc:creator><pubDate>Wed, 13 Apr 2005 21:32:25 GMT</pubDate></item></channel></rss>