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
|
// copie du dossier
private void CopyDir(string sourceDir, string destDir,int TID)
{
DirectoryInfo dir = new DirectoryInfo(sourceDir); if (dir.Exists)
{
try
{
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))
{
// if ((new DirectoryInfo(d).Attributes & FileAttributes.System) != FileAttributes.System)
if (!Tcontinue[TID]) break;
CopyDir(d, realDestDir, TID);
}
if (!Tcontinue[TID]) return;
foreach (string file in Directory.GetFiles(sourceDir))
{
if (!Tcontinue[TID]) break;
string fileNameDest = Path.Combine(realDestDir, Path.GetFileName(file));
CopyFile(file, fileNameDest, TID);
}
}
catch
{
// on stocke l'erreur
if (errs[TID].Count < 50)
errs[TID].Add(DateTime.Now.ToLongTimeString() + " : [" + appli_saved[TID] + "] Le répertoire \"" + sourceDir + "\" n'est plus accessible.");
else
{
errs[TID].Add(DateTime.Now.ToLongTimeString() + " : [" + appli_saved[TID] + "] 50 erreurs sont apparues, arret de la sauvegarde " + appli_saved[TID]);
Tcontinue[TID] = false;
return;
}
}
}
else
errs[TID].Add(DateTime.Now.ToLongTimeString() + " : [" + appli_saved[TID] + "] Le répertoire \"" + sourceDir + "\" est introuvable.");
} |
Partager