Bonjour,
voici mon code :
La portion du "try / catch" n'a aucun effet, pourquoi ?
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
33
34
35
36
37
38
39
40 private void CopyDir(string sourceDir, string destDir) { // 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)) if (File.GetLastWriteTime(file) > File.GetLastWriteTime(fileNameDest)) { try { File.Copy("C:/zzz.txt", "Z:/zzz.txt", true); File.Copy(file, fileNameDest, true); } catch (FileNotFoundException e) { File.Copy("C:/zzz.txt", "Z:/zzz.txt", true); etat = "Erreur : " + e.Message; } } } } }
La variable "etat" permet de stocker l'erreur et est déclarée comme :
La fonction CopyDir est appelée dans un backgroundworker.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public string etat;
Merci.
Partager