J'écris un VBScript pour essayer de compresser plusieurs répertoires dans différents endroits dans le même fichier Zip. La solution que j'utilise actuellement consiste à parcourir les répertoires que je veux compresser (dont il y en a actuellement 2), obtenir les objets du fichier et utiliser la méthode copyHere pour copier le dossier source dans un fichier zip avec le bon format d'en-tête.Comment puis-je être sûr qu'un très gros fichier compressé est fini de compresser?
Cette partie semble fonctionner, la difficulté que j'ai est avec la vérification d'erreur. Les deux seules solutions que j'ai trouvées en ligne sont d'obtenir le nombre d'objets dans les répertoires source et cible et de dormir jusqu'à ce qu'ils soient identiques, ou de vérifier si le fichier zip est ouvert pour l'ajout et le sommeil jusqu'à ce qu'il le soit. La première option est facile avec un répertoire, mais devient beaucoup plus fastidieuse avec plusieurs dossiers, sans compter que Windows va probablement créer un objet dans le répertoire cible avant qu'il ait fini de copier et je compresse des fichiers potentiellement plus de 10 Go donc cette solution ne fonctionnera pas.
J'avais essayé d'implémenter la deuxième solution mais chaque fois que la boucle arrivait au second appel à CopyHere, cela me disait que le fichier zip était corrompu à partir de la première itération. Est-il impossible de compresser des fichiers très volumineux dans un fichier zip avec VBScript? Toutes les autres suggestions sur la façon dont je peux vérifier que la compression est effectuée à l'aide de VBScript seraient très utiles.
Il y a des problèmes documentés avec des tailles zip au-dessus de 2 Go/4 Go au moins [ici] (http://stackoverflow.com/questions/20009033/is-there-a-size-limit-for-a- zip-fichier-using-copyhere-in-vbscript) et [ici] (https://stackoverflow.com/questions/37411326/limiting-zip-file-size) – LotPings