via divers recherches (ici notamment), j'ai la fonction suivante qui me permet de créer une archive vide :
VB:
Public Function Create(ByVal ZipFileFullName As String) As Shell32.Folder
Dim FileNumber As Long
Let FileNumber = VBA.FreeFile
Open ZipFileFullName For Output As #FileNumber
Print #FileNumber, VBA.Chr$(80) & VBA.Chr$(75) & VBA.Chr$(5) & VBA.Chr$(6) & VBA.String$(18, 0)
Close #FileNumber
with New Shell32.Shell
Set Create = .NameSpace(ZipFileFullName)
End With
End Function
Mon archive est bien crée suite à l'exécution de la fonction. Toutefois, j'observe que lorsque j'ouvre dans 7zip l'archive créée, je ne peux pas ajouter de dossier (clic droit => créer un dossier) : l'option est désactivée.
Et si j'essaie avec le raccourci (F7), j'ai un message d'erreur :
Maintenant, si j'ouvre mon archive dans Notepad++, j'observe qu'il y a 2 lignes dans mon fichiers. La deuxième est vide. Je la supprime, sauvegarde et ferme l'archive dans Notepad++, la réouvre dans 7zip, alors l'option créer dossier est accessible et elle fonctionne normalement.
Comment se fait-il qu'une ligne vide soit ajoutée à la fin du fichier ? Puis-je remédier à ce problème directement dans la fonction ?
D'avance, merci pour votre aide ^^
Edit : résolu, j'ai trouvé la réponse ici : ajouter un point-virgule à la fin de l'instruction Print