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.
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. xav3601 Messages postés 3390 Statut Membre 312
     
    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
    1. 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