Mon problème est que la quantité de donnée que je dois copier (via cet API) est assez grande et transit via un réseau. J'aimerais donc pouvoir spécifier à la fonction de copier QUE les fichiers qui sont PLUS récents que ceux existants déjà (s'ils existent). J'aimerais avoir confirmation que ce n'est pas possible via cette API, et dans l'affirmative, savoir s'il existe une alternative ?
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 7 déc. 2006 à 11:03
salut,
le problème dans ton cas, c'est qu'il faudrait connaitre le contenu des 2 répertoires (cible et source) avant la copie. Une fois que tu connais ca, à toi de copier les bons fichiers.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 7 déc. 2006 à 11:46
Le problème c'est que je suis assez soucieux des performances (la taille du répertoire est assez grande).
Si je comprends bien, je devrais d'abord scanner les deux répertoires (cible et source), récupérer les fichiers à copier (les plus récents), puis lancer la copie via l'API?
Ca me paraît largement plus lent que de regarder au fur et à mesure si le fichier courrant est plus récent ou pas, non ?
Peut-être que cet API n'est pas la bonne solution... WMI ?
Autres?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 7 déc. 2006 à 12:08
Moui jvais voir alors...
L'avantage de SHFileOperation c'est que ca m'ouvre une petite fenêtre qui indique le fichier en cours de copie ainsi que la progression totale (mon application est une application Console).
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 7 déc. 2006 à 14:29
Bon, je vais passer par solution qui est d'énumérer tous les fichiers dont j'ai besoin, et passer cette liste à la structure
SHFILEOPSTRUCT.
J'ai vu que cette structure avec un flag qui s'appelle fAnyOperationsAborted qui permet de savoir si le user à quitter ou non l'opération en cours, mais apparement cette valeur vaut toujours 0 (que je clique sur cancel ou non durant la copie).
Une idée?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 11 déc. 2006 à 00:14
Salut,
Tu l'as déclarée comment ta structure SHFILEOPSTRUCT ?
Il me semble qu'il faut :
- soit passer par un LayoutKind à Sequential avec un Pack à 1
- soit passer par un LayoutKind à Explicit et préciser les positions correctes sur chaque champs via l'attribut FieldOffset.