Zipper des fichiers

Résolu
chithien -  
 chithien -
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 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
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
chithien
 
ç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