Petit nouveau sur Autoit, je me permets de vous demander de l'aide.
Besoins
J'essaye de développer un script permettant de "zipper" (de manière recursive) l'ensemble des fichiers d'un dossier.
Script
Code : Tout sélectionner
Début du script - Ajouter votre code ci-dessous.
#pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico)
#include <File.au3>
#include <Array.au3>
#include <FileListToArrayXT.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <string.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <Misc.au3>
#include <File.au3>
#include <Process.au3>
#include <Constants.au3>
#include <string.au3>
#include <Array.au3>
#include <Date.au3>
#include "RecFileListToArray.au3"
#include <File.au3>
#include <7Zip.au3>
$dossier_a_archiver=StringFormat("%s",@scriptdir)
$fichier_erreur=StringFormat("%s\erreur_zip.txt",@scriptdir)
$listing = _RecFileListToArray($dossier_a_archiver, "*", 2, 0, 1, 2, "", "")
If @error <> 1 Then
If @error <> 4 Then
For $i = 1 To $listing[0]
$dossier_level1 = $listing[$i]
$listing2 = _RecFileListToArray($dossier_level1, "*", 1, 1, 1, 2, "", "*.zip;*.tar.gz;*.rar")
If @error <> 1 Then
If @error <> 4 Then
For $j = 1 To $listing2[0]
$FileName=$listing2[$j]
if not StringInStr($filename,".zip") then
if not StringInStr($filename,".rar") then
if not StringInStr($filename,".7z") then
$ArcFile=StringFormat("%s.zip",$filename)
$retResult = _7ZipAdd(0, $ArcFile, $FileName)
If @error Then
FileWriteLine($fichier_erreur,$filename)
;~ MsgBox(16, "_7ZipAdd", "Error occurred")
Else
if FileExists($ArcFile) and FileGetSize($ArcFile) >1001 Then
;~ MsgBox(64, "_7ZipAdd", "Archive created successfully" & @LF & $retResult)
Sleep(1000)
FileDelete($FileName)
Else
;~ MsgBox(64, "Fichier no", "Archive created successfully" & @LF & $retResult)
$msg=StringFormat("***fichier %s PB de ZIP***",$filename)
FileWriteLine($fichier_erreur,$msg)
EndIf
EndIf
EndIf
EndIf
EndIf
Next
EndIf
EndIf
Next
EndIf
EndIf
Bien que rudimentaire , ce code semble fonctionner mais uniquement sur des fichiers/dossiers sans accents ou autre caractère spéciaux.
Tentative de Résolution
- J'ai essayer de remplacer les caractères via un stringreplace mais cela ne corrige pas vraiment le problème.
J'ai essayer de passer par file=>encodage (sans succès)