Zipper des fichiers

Résolu/Fermé
chithien - 20 nov. 2008 à 15:41
 chithien - 20 nov. 2008 à 16:48
Bonjour,

Je cherche à savoir comment zipper en vba des fichiers se trouvant sur un répertoire dont le nom comporte une ou plusieurs espaces.
Pour zipper des fichiers, j'utilise cette ligne de code : Shell(CheminWinZip & "winzip32.exe -a " & nomZip & " " & fich) qui permet de zipper des fichiers avec WinZip.
Le problème se produit lorsque je veux zipper des fichiers se trouvant sur un répertoire conportant des espaces (ex : C:\Test\Répertoire Archive). En effet, la macro interprète comme si on voulait zipper des fichiers se trouvant sur le répertoire "C:\Test\Répertoire" et non "C:\Test\Répertoire Archive" !
Est-ce que quelqu'un sait comment peut-on faire pour que la macro prenne aussi en compte l'espace ?

Merci de votre aide.
A voir également:

1 réponse

xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
20 nov. 2008 à 15:45
il faut que tu lui donne le chemin en dos, en cherchant sur internet tu trouvera des petits logiciels qui permette a partir d'un chemin windows de te sortir le chemin dos
0
ça marche, merci !

Voici un petit programme qui permet de convertir des chemins windows en dos :

Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
Public Function DosPath(strFile As String) As String
Dim lng As Long, Path As String 'Données nécessaires
Path = String$(165, 0) 'Crée un buffer
lng = GetShortPathName(strFile, Path, 164) 'Prend le chemin en Dos
DosPath = Left$(Path, lng) 'Enlève tout les chr$(0) de trop
End Function
0