bonjour,

tout d'abord, pardon pour l'intitulé.. je savais pas quoi mettre...

voici mon probleme...

je parcours tous les dossiers depuis un répertoire précis. Si un dossier est vide, je le supprime grace à cette methode:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
bool CTemp::ViderRepertoire( LPCTSTR repertoire, bool suppressionDefinitive /*= true*/ )
{
 
	if (PathFileExists(repertoire))
	{
		SHFILEOPSTRUCT sh;
		sh.hwnd = NULL;
		sh.wFunc = FO_DELETE;
		sh.pFrom = repertoire;
		sh.pTo = NULL;
		sh.fFlags = FOF_NOCONFIRMATION|FOF_SILENT;
		if(!suppressionDefinitive)
			sh.fFlags |= FOF_ALLOWUNDO;
		sh.fAnyOperationsAborted = FALSE;
		sh.lpszProgressTitle = NULL;
		sh.hNameMappings = NULL;
 
		return (SHFileOperation(&sh)==0);
 
 
	}
	else 
	{
		AfxMessageBox("repertoire inexistant");
		return 0;
	}
 
}
appel:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ViderRepertoire(ModifierChemin(path));
où ModifierChemin va en fait transformer tous les "\" en "\\"

bon mon problème est que de cette facon, mon dossier n'est pas supprimé, alors que si je mets le chemin en dur: ex "C:\\temp\\program files" bah là ça marche.

j'ai utilisé cett exemple mais si je l'appelle de cette facon:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
CString chemin= "C:\\temp\\program files";
ViderRepertoire(chemin);
ça marche pas non plus...

quelqu'un pourrait m'expliquer pourquoi??

mercii