Meine Copy & Move Funktionen



  • Hallo, ich habe hier Funktionen zum Kopieren & Verschieben von Verzeichnissen und Dateien:

    Kopieren

    void Copy_Folder(LPCTSTR pszFrom, LPCTSTR pszTo)
    {
    	SHFILEOPSTRUCT fos = {0};
    
    	fos.wFunc = FO_COPY;
    	fos.pFrom = pszFrom; 
    	fos.pTo   = pszTo;
    
    	SHFileOperation(&fos); 
    }
    
    void Copy_File(LPCTSTR pszFrom, LPCTSTR pszTo)
    {
    	SHFILEOPSTRUCT fop;
    
    	fop.hwnd   = NULL; 
    	fop.wFunc  = FO_COPY; 
    	fop.pFrom  = pszFrom; 
    	fop.pTo    = pszTo;
    	fop.fFlags = FOF_ALLOWUNDO;
    
    	SHFileOperation(&fop); 
    }
    

    **
    Verschieben**

    void Move_Folder(LPCTSTR pszFrom, LPCTSTR pszTo)
    {
    	SHFILEOPSTRUCT fos = {0};
    
    	fos.wFunc = FO_MOVE;
    	fos.pFrom = pszFrom; 
    	fos.pTo   = pszTo;
    
    	SHFileOperation(&fos); 
    }
    
    void Move_File(LPCTSTR pszFrom, LPCTSTR pszTo)
    {
    	SHFILEOPSTRUCT fos = {0};
    
    	fos.hwnd   = NULL;
    	fos.wFunc  = FO_MOVE;
    	fos.pFrom  = pszFrom;
    	fos.pTo	   = pszTo;
    	fos.fFlags = FOF_ALLOWUNDO;
    
    	SHFileOperation(&fos); 
    }
    

    Hat jemand noch Verbesserungsvorschläge und wie kann man bei vorhandenen Dateien die Windows Dialoge ausblenden und diese in der Konsole anzeigen??



  • Wenn du die Bestätigungsdialoge ausblenden willst musst du die entsprecheneden flags setzten, wie z.B. "FOF_NOCONFIRMATION", aber da gibts ja noch andere. Am besten du schaust mal in die MSDN.



  • Habe eine Rename-Funktion geschrieben, doch irgendwie werden die Dateien nicht umbenannt 😞

    void Rename_File(LPCTSTR pszFrom, LPCTSTR pszTo)
    {
    	SHFILEOPSTRUCT fos = {0};
    
    	fos.hwnd   = NULL;
    	fos.wFunc  = FO_RENAME;
    	fos.pFrom  = pszFrom;
    	fos.pTo	   = pszTo;
    	fos.fFlags = FOF_NOCONFIRMATION|FOF_SILENT;
    
    	SHFileOperation(&fos); 
    }
    
    Rename_File("E:\\test.txt",  "E:\\blabla.txt");
    

    Weiß jemand was falsch ist ??



  • MoveFile/MoveFileEx ist einfacher und direkter.



  • Das verschieben klappt schon, doch ich brauche eine Umbenennen-Funktion, jedoch meine Funktioniert nicht 😞



  • MoveFile/MoveFileEx benennt auch um. 😉


Anmelden zum Antworten