Dateien / Verzeichnisse kopieren
-
Hm, ich dachte der macht das sofort wenn ich das aufrufe.
bei der If Anweisung bekomme ich E2188 Ausdruckssyntax
und in Zeile E2379 In Anweisung fehlt
er markiert dabei eine Klammer
-
if(SHFileOperation(&foCopy) == 0))Da fehlt ja auch ne Klammer...
Zweimal Klammer öffnen, dreimal Klammer schließen... da fehlt was.
-
Puh!
Schwere Geburt!!
Das hat endlich geklappt!!
besten Dank!!
-
ohh übersehen:
FOF_FILESONLY
weglassen, dann klappt es auch mit den Unterordnern

-
Hab jetzt auch ein kleines Problem.
Und zwar wenn ich die Pfade in CStrings angebe:SHFILEOPSTRUCT foCopy; returnstring+="\\*.*\0"; //c:\\test wird jetzt c:\\test\\*.* m_psi1+="\0"; //c:\\testzwei MessageBox(returnstring,m_psi1); //Kontrolle, wird auch richtig angezeigt ! foCopy.hwnd = NULL; foCopy.wFunc = FO_COPY; foCopy.pFrom = returnstring; //ist hier der wurm drin ? foCopy.pTo = m_psi1; foCopy.fFlags = FOF_NOCONFIRMATION; foCopy.fAnyOperationsAborted = FALSE; foCopy.hNameMappings = NULL; foCopy.lpszProgressTitle = NULL;Die Pfade werden zwar offensichtlich richtig übernommen, aber
ich erhalte immer den Fehler: Quelldatei kann nicht gelesen werden.
-
Scheint mit Variablen wohl nicht zu gehen ?
Wenn ich den Pfad direkt reinschreibe:foCopy.pFrom = "c:\\test\\*.*\0"; //returnstring; foCopy.pTo = m_psi1;Dann geht es
Wie gemein 
-
returnstring.c_str()

-
Was meinst du

Ich muss den CString returnstring wohl irgendwie
noch neu formatieren ?! damit er in der Copyoperation
verwendet werden kann ??
-
Genau, so ungefähr

foCopy.pFrom = returnstring.c_str();
-
Hi flenders,
habe ich soeben probiert. Das Ergebnis ist folgende Fehlermeldung:
error C2039: 'c_str': Ist kein Element von 'ATL::CStringT<BaseType,StringTraits>'
with
[
BaseType=char,
StringTraits=StrTraitMFC<char>
]Muss ich noch irgendwas spezielles includen, oder gehts einfach
nicht weil es ein CString ist ? Ich verstehe die Fehlermeldung leider
nicht wirklich
-
-
Hmm, ich habs mal damit versucht bekomme aber wieder
das Feld mit "Quelldatei kann nicht kopiert werden".
Keine Fehler im Compiler, Pfad wird in MessageBox auch
richtig angezeigt.Kannst du mir mal ein Beispiel geben, wie ich den
CString returnstring; so aufbereite, dass ihnfoCopy.pFrom = "c:\\test123\*.*";//returnstring;
annimmt und korrekt verarbeitet ? Ich habe keine Idee
wo jetzt noch der Fehler sein kann. Das Quellverzeichnis
existiert natürlich inkl. Unterordner und Files.
-
Nachtrag:
in der Zeile:
foCopy.pTo = m_psi1; //ebenfalls ein CStringklappt alles einwandfrei, aber nur wenn ich .pFrom
direkt, ohne Variable angebe.
-
Evtl. solltest du sowas mal im MFC-Forum fragen

-
Ok, werde ich machen und dann auf dieses Thema verweisen.
Vielen Dank für deine Hilfe bis hierher
-

Hallo Jungs,wenn ich die Funktion SHFileOperation verwende, bekomme ich folgende
Fehlermeldung:error LNK2001: unresolved external symbol __imp__SHFileOperationW@4
Ich habe auch den Header und das lib file eingebunden:
#pragma comment (lib, "shell32.lib")
#include <shellapi.h>
Die Datei ist ein c file und nicht ein cpp file.
Ich habe schon versucht den Code in einer cpp Datei zu kompilieren, aber
da werden einige C-Funktionen trotz das Schlüsselwort extern "C" nicht erkannt!Danke

-
Keine Ahnung, aber evtl. geht #pragma comment nur in cpp-Files - hast du mal probiert, die lib über Projekt > Einstellungen > Linker hinzuzufügen?!