Quelqu'un peut-il me dire pourquoi cela traite tous les fichiers, puis le fait à nouveau? Ça me rend fou. MerciPour boucle s'exécute deux fois
private void HP3BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker hp3worker = (BackgroundWorker) sender;
DirectoryInfo hp3Files = new DirectoryInfo(fromPath + @"\hp3\");
FileInfo[] hp3Filelist = hp3Files.GetFiles("*.*");
int count = hp3Filelist.Length;
UseWaitCursor = true;
for (int i = 0; i < count; i++)
{
FileInfo file = hp3Filelist[i];
try
{
File.Copy(fromPath + @"\hp3\" + file.Name, toPath + @"\hp3\" + file.Name, true);
hp3worker.ReportProgress((int)((float) i/count * 100));
}
catch (Exception error)
{
MessageBox.Show("Error is " + error);
}
}
UseWaitCursor = false;
}
Plus d'informations nécessaires. Il n'y a aucune raison évidente pour que cela s'exécute deux fois - Est-ce que la fonction DoWork est appelée deux fois? –
Si ce code est appelé à partir de l'événement d'un FileSystemWatcher, il est probablement appelé deux fois. – idstam
Probablement? Pourquoi ne vérifiez-vous pas cela en premier? Comment devrions-nous vous aider si nous ne savons pas si la méthode est appelée deux fois? –