Ordner inkl. Inhalt mit SHFileOperation kopieren...



  • Ich versuche verzweifelt einen Ordner inkl. Inhalt zu kopieren.

    Leider wird lediglich der Ordner testNeu angelegt, der Inhalt aber nicht kopiert.

    Bin sehr unerfahren was C++ und programmieren angeht und hoffe auf eure Hilfe.

    So sieht der Code bisher aus:

    std::string OldPath=aktuellesVerzeichnis+"\\test\\";
    	std::string NewPath=aktuellesVerzeichnis+"\\testNeu\\";
    	NewPath+="\0\0";
    	OldPath+="\0\0";
    	SHFILEOPSTRUCTA shFileOp={NULL, FO_COPY, OldPath.c_str(),NewPath.c_str(),FOF_NOCONFIRMMKDIR,FALSE,NULL,"Kopiere..."};
    
    	SHFileOperationA(&shFileOp);
    

    Viele Grüße



  • Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • SHFILEOPSTRUCT FileOp;
    ZeroMemory(&FileOp, sizeof(FileOp));
    FileOp.wFunc = FO_COPY;
    FileOp.pFrom = "test\\*\0";
    FileOp.pTo = "testNeu\0";
    FileOp.fFlags = FOF_NOCONFIRMMKDIR;
    FileOp.lpszProgressTitle = "Kopiere...";
    SHFileOperation(&FileOp);
    


  • Hab schon etwas geschmunzelt als ich den Namen gesehen habe 😃 .

    Habe den Code wie folgt geändert:

    std::string OldPath=aktuellesVerzeichnis+"\\test";
    	std::string NewPath=aktuellesVerzeichnis+"\\testNeu";
    
    	NewPath+="\0";
    	OldPath+="\\*\0";
    
    	SHFILEOPSTRUCTA copyFolder;
    	ZeroMemory(&copyFolder,sizeof(SHFILEOPSTRUCTA));
    	copyFolder.hwnd=NULL;
    	copyFolder.wFunc=FO_COPY;
    	copyFolder.pFrom=OldPath.c_str();
    	copyFolder.pTo=NewPath.c_str();
    	copyFolder.fFlags= FOF_NOCONFIRMMKDIR;
    
    	SHFileOperationA(&copyFolder);
    

    Habe immer noch das Problem, dass ein leerer Ordner testNeu erstellt wird, aber die Daten aus test nicht kopiert werden.



  • 🤡 doppelt Nullterminiert...
    also:

    std::string OldPath=aktuellesVerzeichnis+"\\test";
        std::string NewPath=aktuellesVerzeichnis+"\\testNeu";
    
        NewPath+="\\\0\0";
        OldPath+="\\*\0\0";
    
        SHFILEOPSTRUCTA copyFolder;
        ZeroMemory(&copyFolder,sizeof(SHFILEOPSTRUCTA));
        copyFolder.hwnd=NULL;
        copyFolder.wFunc=FO_COPY;
        copyFolder.pFrom=OldPath.c_str();
        copyFolder.pTo=NewPath.c_str();
        copyFolder.fFlags= FOF_NOCONFIRMMKDIR;
    
        SHFileOperationA(&copyFolder);
    

    😃
    Das müßte funzen, ansonsten fress' ich ein Besen... 😃


Log in to reply