extraire des informations avec une condition de date : mettre le nom du fichier dans la liste s'il est supérieur à une date et une heure spécifiéesSalut,
J'essaie d'obtenir la liste des noms de fichiers dans un répertoire avec une condition donnée s'il s'agit 1) d'une archive zip et également de la 2) date de création supérieure à aaaa/mm/jj. Ci-dessous mon script. Ma question
1) il s'est exécuté sans erreur mais n'a pas renvoyé de liste vide. Je ne sais pas quel est le problème (peut-être la date).
2) comment puis-je définir le format de sortie de la date de création () sur aaaa/mm/jj hh:mm:ss ?
3) il faut beaucoup de temps pour parcourir le chemin 2 car j'ai plus de 100 000 dossiers zip. Existe-t-il un autre moyen plus rapide de le faire ?
Merci
path2 = "C:\Users\test\;
filelist = files in directory (path2);
lst2 = {};
For(i=1, i<= N items(filelist), i++,
If( Contains(filelist[i], ".zip") & Creation Date( path2||filelist[i]) > 2022-10-12T08:00:00, Insert Into( lst2, filelist[i] )
),
);
Organisation du contenuIngénierie Qualité et ProcédésRe : extraire des informations avec une condition de date : mettre le nom du fichier dans la liste s'il est supérieur à une date et une heure spécifiéesVous pouvez essayer ceci... cela devrait accélérer les choses
Names Default To Here( 1 );
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
For( i = N Items( filelist ), i >= 1, i--,
If( Right( filelist[i], 4 ) != ".zip",
Remove From( filelist, i, 1 )
)
);
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);Re : extraire des informations avec une condition de date : mettre le nom du fichier dans la liste s'il est supérieur à une date et une heure spécifiéesSalut Jim, merci. cela a résolu le problème. Cependant, cela prend trop de temps lorsqu'un dossier contient trop de fichiers à parcourir. Vous trouverez ci-dessous les nouvelles étapes que je dois suivre. Ainsi, la prochaine fois que je souhaiterai simplement extraire les derniers fichiers, cela ne prendra pas beaucoup de temps, comme utiliser la date/heure comme filtre (ci-dessus). Je ne sais pas si c'est un moyen efficace de le faire. Existe-t-il un meilleur moyen d’extraire simplement les derniers fichiers en moins de temps ?
1) la première fois, obtenez la liste complète des fichiers dans le dossier défini ( Fichiers dans le répertoire (dir) ). Je l'ai enregistré dans une colonne d'un tableau, "T1" (exécuté une seule fois)
2) après un certain temps, les derniers fichiers ajoutés au même dossier. Le script ira dans le même dossier et prendra toute la liste de fichiers comme "nouvelle liste" (nouvelle liste = Fichiers dans le répertoire (dir)) .
3) récupérez la colonne du tableau 1) sous forme de liste, puis effectuez une boucle pour supprimer les éléments de la nouvelle liste (j'utilise Remove From ()) .
4) faites tout ce qui est nécessaire sur la nouvelle liste.
5) ajouter une nouvelle liste dans le tableau en 1).
6) répétez les étapes 2) à 5) la prochaine fois que j'aurai besoin de récupérer les derniers fichiers.
Toute suggestion?
Re : extraire des informations avec une condition de date : mettre le nom du fichier dans la liste s'il est supérieur à une date et une heure spécifiéesDans l'exemple que vous avez fourni, il manque un guillemet double sur la ligne path2 =, et de plus, la référence temporelle ne semble pas être gérée par JMP, donc en la remplaçant par une fonction Informat(), on peut être assuré que le La référence date/heure JMP est interprétée correctement.
names default to here(1);
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Contains( filelist[i], ".zip" ) & Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);