2009-08-10 9 views
2

Je programme sous C++, MFC, windows.Comment supprimer le dossier dans la corbeille

Je souhaite supprimer un dossier dans la corbeille. Comment puis-je faire cela?

CString filePath = directorytoBeDeletePath; 
    TCHAR ToBuf[MAX_PATH + 10]; 
    TCHAR FromBuf[MAX_PATH + 10]; 
    ZeroMemory(ToBuf, sizeof(ToBuf)); 
    ZeroMemory(FromBuf, sizeof(FromBuf)); 

    lstrcpy(FromBuf, filePath); 

    SHFILEOPSTRUCT FileOp; 
    FileOp.hwnd = NULL 
    FileOp.wFunc=FO_DELETE; 
    FileOp.pFrom=FromBuf; 
    FileOp.pTo = NULL; 
    FileOp.fFlags=FOF_ALLOWUNDO|FOF_NOCONFIRMATION; 
    FileOp.hNameMappings=NULL; 
    bRet=SHFileOperation(&FileOp); 

Une erreur avec le code ci-dessus? Il a toujours échoué.

Je trouve le problème: filePath devrait être: "c: \ abc" et non "c: \ abc \"

Répondre

3

La valeur de retour de SHFileOperation est un int, et préciser le code d'erreur. Qu'est ce que tu obtiens?

0

Je sais que ce n'est pas la bonne façon, mais si vous ne trouvez pas une solution, vous pouvez essayer ..

fichier télécharger nircmd.exe ou d'une autre exe qui peut vider la corbeille.

vous appelez ces fonctions par le système (le "emptybin nircmd.exe")

+0

Merci beaucoup ~~~~ – user25749

Questions connexes