Bonjour


Je souhaite déplacer un fichier d'un dossier A vers un dossier B lorsque ce fichier est détecté dans le dossier A.
Pour cela j'utilise un objet FileSystemWatcher et son évènement "Created" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
FileSystemWatcher^ fsw = gcnew FileSystemWatcher;
fsw->Path = A;
fsw->Filter = "*.jpg";
fsw->Created += gcnew FileSystemEventHandler(this,&FenetreApp::NewImg_OnCreated);
fsw->EnableRaisingEvents = true;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void FenetreApp::NewImg_OnCreated(Object^ sender,FileSystemEventArgs^ e)
{
FileInfo^ f = gcnew FileInfo(e->FullPath);
f->Attributes = FileAttributes::Temporary;
f->MoveTo(dossierTmpPhotos + L"\\" + f->Name);
}
Dans le gestionnaire d'évènement je veux déplacer le fichier dans le dossier B.
Mais je me heurte au message d'erreur suivant :
le processus ne peut pas accéder au fichier E:\Entree\image.jpg parcequ'il est déjà utilisé par un autre processus.
Comment puis utiliser FileSystemWatcher pour arriver à mes fins ?