souci fonction Move - noms de fichiers identiques
Bonjour à tous,
J'ai un petit service windows qui déplace les fichiers d'un dossier A distant (alimenté en fichier par un logiciel) et un dossier B. Tous fonctionne bien sauf lors que le déplace un fichier ayant un nom déjà présent dans le dossier B.
Par exemple de déplace le fichier test.txt du dossier A vers le dossier B mais que dans ce dernier il existe déjà un fichier nommé test.txt, alors ça plante....
Voici mon code.
Code:
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
|
private void MoveFiles()
{
NetworkShare.ConnectToShare(@"" + SourcePath, SourceLogin, SourcePassword);
try
{
Thread.Sleep(1000);
String[] files = Directory.GetFiles(SourcePath + "\\", "*" + FileType, SearchOption.TopDirectoryOnly);
foreach (String file in files)
{
File.Move(file, DestPath + "\\" + new FileInfo(file).Name);
Library.WriteErrorLog(new FileInfo(file).Name.ToString() + " déplacé vers " + DestPath);
}
}
catch (Exception ex)
{
Library.WriteErrorLog("Service Erreur : " + ex.Message);
//Stop the Windows Service.
using (System.ServiceProcess.ServiceController serviceController = new System.ServiceProcess.ServiceController("SimpleService"))
{
Library.WriteErrorLog("Le Service MoveFile est stoppé");
serviceController.Stop();
}
}
NetworkShare.DisconnectFromShare(@"" + SourcePath, false);
} |
Comment faire pour lors du déplacement de fichiers, si le nom "test.txt" existe déjà dans mon dossier B, de renommer mon fichier en "test(1).txt"? Et ainsi de suite?
Je vois pas trop comment faire, une idée?