Voici un exemple de code dans Visual Basic 6 permettant extraire cycliquement tous les fichiers compressés contenus dans un dossier.
Il arrive souvent d'avoir de nombreux fichiers zippés, peut-être volumineux, à extraire et pour éviter de perdre beaucoup de temps, vous pouvez exécuter ce script en VB6 pour extraire et décompresser le contenu de vos fichiers zippés.
Comment extraire tous les fichiers compressés présents dans un dossier en VB6
Il vous suffit d'indiquer le chemin des fichiers zippés dans sRépertoire et le chemin des fichiers extraits dans sRépertoireNouveau. Bien sûr, vous pouvez personnaliser le script en insérant une InputBox pour donner à l'utilisateur la possibilité d'insérer les chemins ou de modifier les extensions des fichiers contenus dans les fichiers zip. A vous le choix.
Bon code !
Privé Sub Form_Load ()
Dim FirstPath en tant que chaîne
Dim contatore aussi longtemps
sRépertoire sous forme de chaîne
sDirectoryNew en tant que chaîne
compteur = 1
sRépertoire = "E : MOUVEMENTS_CC2014"
sDirectoryNew = "E : CC_MOVES à charger"
Fichiers ReDim(0)
stemp = Dir$(sRépertoire)
Faire jusqu'à stemp = ""
Si stemp "." Et stemp ".." Et GetAttr(sDirectory & stemp) vbDirectory Then
ReDim préserver les fichiers (UBound (fichiers) + 1)
Fichiers(UBound(Fichiers)) = stemp
DefPath = sRépertoire
Si Right(Trim(stemp), 4) = ".zip" Ou Right(Trim(stemp), 4) = ".ZIP" Alors
'extraire les fichiers
Fname = sRépertoire & stemp
'Application.GetOpenFilename(filefilter:=”Fichiers Zip (*.zip), *.zip”, MultiSelect:=False)
»
Si Fname = False Alors
'Ne fais rien
autre
'Dossier racine pour le nouveau dossier.
'Vous pouvez également utiliser DefPath = "C:UsersRontest"
'Default = Application.DefaultFilePath
Si droite (DefPath, 1) "" Alors
DefPath = DefPath & ""
Si fin
'Créer le nom du dossier
' strDate = Format(Maintenant, ” jj-mm-aa h-mm-ss”)
'FileNameFolder = DefPath & "MyUnzipFolder" & strDate & ""
FileNameFolder = DefPath
'Créer le dossier normal dans DefPath
'MkDir FileNameFolder
'Extraire les fichiers dans le dossier nouvellement créé
Définir oApp = CreateObject ("Shell.Application")
'Modifiez ce "*.txt" pour extraire les fichiers que vous voulez
Pour chaque fichierNameInZip In oApp.Namespace(Fname).items
Si LCase(fileNameInZip) Like LCase(“*.txt”) Alors
FirstPath = sDirectoryNew & stemp & ".txt"
Si ExistFile(FirstPath) = False Then
oApp.Namespace(FileNameFolder).CopyHere _
oApp.Namespace(Fname).items.Item(CStr(fileNameInZip))
'insérer une pause
'Application.Wait Now + TimeValue ("00:00:05")
'Si InStr(fileNameInZip, “giornaliero”) > 0 Alors
vérifier s'il existe déjà
'si Fnom
Nommez sDirectory & fileNameInZip en tant que sDirectoryNew & stemp & ".txt"
compteur = compteur + 1
Si fin
'Fin si
Si fin
Suivant
'MsgBox « Vous trouvez les fichiers ici : » & FileNameFolder
On Error Resume Next
Définir FSO = CreateObject ("scripting.filesystemobject")
FSO.deletefolder Environ(“Temp”) & “Temporary Directory*”, True
Si fin
autre
'Quitter Faire
Si fin
Si fin
stemp = Dir ()
boucle
Elencafile = Fichiers
OFS.Fermer
oApp.Fermer
Définir FSO = Rien
Définir oApp = Rien
End Sub
Fonction ExistFile (NomeFile As String) As Boolean
On Error Resume Next
ExistFile = (GetAttr(NomeFile) Et vbDirectory) = 0
Fonction de fin