Le programme de test se trouve ici : http://pastebin.ca/1483658
Une possibilite serait de lister les fichiers avant et apres et de voir
la difference a chaque notification, mais ca me semble etre une solution
qui peut s'averer couteuse si le nombre de fichier est grand.
Existe-t-il une autre solution, basee sur l'utilisation de
ReadDirectoryChangesW() ?
merci
Bonjour,
Tu peux utiliser GetFileAttributes pour savoir si tu as affaire � un
fichier ou � un r�pertoire.
> Vincent Torri a �crit :
>>
>> Le programme de test se trouve ici : http://pastebin.ca/1483658
>>
>> Une possibilite serait de lister les fichiers avant et apres et de
>> voir la difference a chaque notification, mais ca me semble etre une
>> solution qui peut s'averer couteuse si le nombre de fichier est
>> grand.
>>
>> Existe-t-il une autre solution, basee sur l'utilisation de
>> ReadDirectoryChangesW() ?
>>
>> merci
>
> Bonjour,
>
> Tu peux utiliser GetFileAttributes pour savoir si tu as affaire � un
> fichier ou � un r�pertoire.
>
certes, dans le cas de l'addition vu que j'ai acces au nom de fichier.
Mais dans le cas de la suppression ?
c'est ce que j'ai ecrit dans le premier post. Mais je peux tres bien
avoir un repertoire avec plusieurs centaines de fichiers (photos de
vacances, par exemple)
> certes, dans le cas de l'addition vu que j'ai acces au nom de fichier.
> Mais dans le cas de la suppression ?
On a aussi acc�s au nom du fichier...
et ? Qu'est-ce que j'en fais dans la meesure ou le fichier (ou le
repertoire) a ete efface... ? J'ai beau avoir le nom, a part avoir une
copie de la liste des fichiers, a priori, je ne peux rien en faire.
Tu disais :
"il me manque une fonctionalite : distinguer, lors de l'ajout ou la
suppression d'un fichier ou d'un repertoire, si c'est un fichier ou bien
si c'est un repertoire"
donc avec GetFileAttributes comme a dit Robert tu as bien l'information.
pas lors de la suppression. Suppose que je fasse le monitoring d'un
repertoire. Via une autre application, un fichier est supprime. Le
programme qui fait le monitoring detecte une suppression. Si j'utilise
GetFileAttribute avec le nom que je peux en effet recuperer, ca me
renverra une erreur (forcement, le fichier n'existant plus).
Oui, mais comme il a dit : tu initialises ta liste ou tableau avec les
fichiers/r�pertoires du r�pertoire au tout d�but 1 seule fois, que tu
mets � jour en cas de suppression ou ajout de fichier ou r�pertoire.
ce que je trouve effarant, c'est que l'api de windows ne puisse pas
fournir ce genre de renseignement simple. D'un cote, on demande la
notification d'un repertoire ou (inclusif) d'un fichier (et on fait bien
la distinction entre les 2), et de l'autre, on ne peut pas savoir lequel
a ete supprime.
apres plusieurs recherches avec google, je ne suis pas le seul a avoir
ete confronte a ce probleme.
> ce que je trouve effarant, c'est que l'api de windows ne puisse pas
> fournir ce genre de renseignement simple. D'un cote, on demande la
> notification d'un repertoire ou (inclusif) d'un fichier (et on fait bien
> la distinction entre les 2), et de l'autre, on ne peut pas savoir lequel
> a ete supprime.
Tu peux cr�er 2 threads, 1 pour les notifications de fichiers
(FILE_NOTIFY_CHANGE_FILE_NAME), l'autre pour les r�pertoires
(FILE_NOTIFY_CHANGE_DIR_NAME)..
Ca serait peut-etre possible. Je porte une lib linux sous Windows, donc
je n'ai pas trop de marge de manoeuvre. En tout cas, j'ai 2 angles
d'attaque, maintenant.
merci a tous