Bonjour,

encore une fois, je fais appel à vos connaissances...

voici mon problème :
j'ai besoin de copier le contenu d'un répertoire dans un autre afin d'effectuer des modifications sur les fichiers copiés.

j'utilise donc la fonction présentée ici (code de blondelle) :
http://www.developpez.net/forums/d43...r/#post2602788

ce qui me donne le code suivant :
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
30
31
32
 
//---------------------------------------------------------------------------
void __fastcall TufmImages::save_finalCanClose(TObject *Sender, bool &CanClose)
{
	// copie complète du répertoire source dans le répertoire final
 
	AnsiString tmpSource = ExtractFileDir(fichierSource);
	AnsiString tmpFinal = ExtractFileDir(save_final->FileName);
 
	tmpSource += "\0";
	tmpFinal += "\0";
 
//	ShowMessage(tmpSource);
//	ShowMessage(tmpFinal);
 
	CopyDir(tmpSource.c_str(), tmpFinal.c_str());
}
//---------------------------------------------------------------------------
void TufmImages::CopyDir(char* SourceDir, char* DestDir)
{
//	SourceDir = "C:\\tmp\\test\0";
//	DestDir = "C:\\tmp\\new\0";
 
	SHFILEOPSTRUCT FileOpStr;
	ZeroMemory(&FileOpStr, sizeof(FileOpStr));
	FileOpStr.hwnd = NULL;
	FileOpStr.wFunc = FO_COPY;
	FileOpStr.pFrom = SourceDir;
	FileOpStr.pTo = DestDir;
	SHFileOperation(&FileOpStr);
}
//---------------------------------------------------------------------------
mais j'ai l'erreur suivante :
Cannot copy file: Cannot read from the source file or disk.
avez - vous une idée d'où peut provenir cette erreur?? sachant que si je retire les // ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
//	SourceDir = "C:\\tmp\\test\0";
//	DestDir = "C:\\tmp\\new\0";
mon code fonctionne (mais ce n'est pas le but...)


merci encore une fois pour votre aide
à bientôt