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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
// déclération du délégué
private delegate void aff_progression();
aff_progression prg_copie;
prg_copie = new aff_progression(progression);
// procédure de copie
private void CopyDir(string sourceDir, string destDir )
{
try
{
// mise en forme des chemins d'accés
sourceDir.Replace("\\", "/");
destDir.Replace("\\", "/");
// process de copie
DirectoryInfo dir = new DirectoryInfo(sourceDir); if (dir.Exists)
{
string realDestDir;
if (dir.Root.Name != dir.Name)
{
realDestDir = Path.Combine(destDir, dir.Name);
if (!Directory.Exists(realDestDir))
Directory.CreateDirectory(realDestDir);
}
else realDestDir = destDir;
foreach (string d in Directory.GetDirectories(sourceDir))
CopyDir(d, realDestDir);
foreach (string file in Directory.GetFiles(sourceDir))
{
string fileNameDest = Path.Combine(realDestDir, Path.GetFileName(file));
//if (!File.Exists(fileNameDest))
File.Copy(file, fileNameDest, true);
File_text = file;
// appel de la fonction déléguée
prg_copie();
}
}
}
catch(ArgumentException argEx)
{
etat = "Erreur :" + argEx.Message;
}
}
private void progression()
{
// exec=instance de mon thread principal ( formulaire )
exec.progression_copie(application_text, File_text);
} |
Partager