T
Vielen Dank, für Eure Hilfe, komme jetzt schon einigermaßen zurecht.
Ein bisschen Schwierigkeiten habe ich allerdings noch:
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.
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.
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.
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)
CString From = "F:\\"+"ver1"+"\0";
int nLen = From.GetLength();
LPCTSTR From2 = From.GetBuffer(nLen);
const char* From3 = From.GetBuffer(nLen);
const char* From4= (LPCTSTR) From;
const char* From5= "F:\\ver1\0";
_SHFILEOPSTRUCTA test;
test.hwnd = NULL;
test.wFunc = FO_COPY;
test.pFrom = From5; //bei allen anderen "Froms" wird zwar kompiliert,
//aber kopieren geht schief
test.pTo = "F:\\ver2\0";
test.fFlags = NULL;
SHFileOperation(&test);
From.ReleaseBuffer();
Gibt's da irgend'ne Möglichkeit erst zur Laufzeit über die Zusammensetzung des Pfades zu entscheiden?
Noch ein Problem:
Ich würde gerne nicht den kompletten Pfad angeben müssen, sondern aus dem aktuellen Verzeichniss heraus navigieren. Also z.B.: mit "../" 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?
Danke, für die Mühe.
teichi