OVH Cloud OVH Cloud

DynaZip en vb6 : problème URGENT

10 réponses
Avatar
Laurent JOLLY
Bonjour
Nous venons de découvrir un 'tit bug au sujet du contrôle DYNAZIP (servant à
compresser, décompresser et de créer un fichier ZIP)
Lorsqu'on indique des fichiers ayant un dossier avec un espace il ne prend
seulement qu'une partie du nom
de dossier et donc la sauvegarde "plante" !
exemple : c:\Program Files\MD\fichier.txt
il ne compresse rien et créé un dossier c:\Files\MD c 'est tout !!

Auriez-vous une idée ? dans les propriétés du controle je ne trouve rien par
rapport à cela !!
Merci bcp !
Laurent

10 réponses

Avatar
Christian Hugoud
Probablement une histoire de nom de fichier/dossier avec une compatibilité
pour les os 16bits (95, 98, me) :

"program files" devient "progra~1"

Cela fonctionne peut-être sous xp, mais pas certain.

Je crois qu'il existe une sorte d'api pour cela, mais je n'en sais pas plus.

Christian


"Laurent JOLLY" a écrit dans le message de news:
dg3j0q$4jg$
Bonjour
Nous venons de découvrir un 'tit bug au sujet du contrôle DYNAZIP (servant
à compresser, décompresser et de créer un fichier ZIP)
Lorsqu'on indique des fichiers ayant un dossier avec un espace il ne prend
seulement qu'une partie du nom
de dossier et donc la sauvegarde "plante" !
exemple : c:Program FilesMDfichier.txt
il ne compresse rien et créé un dossier c:FilesMD c 'est tout !!

Auriez-vous une idée ? dans les propriétés du controle je ne trouve rien
par rapport à cela !!
Merci bcp !
Laurent



Avatar
jean-marc
"Laurent JOLLY" wrote in message
news:dg3j0q$4jg$
Bonjour
Nous venons de découvrir un 'tit bug au sujet du contrôle DYNAZIP (servant


à
compresser, décompresser et de créer un fichier ZIP)
Lorsqu'on indique des fichiers ayant un dossier avec un espace il ne prend
seulement qu'une partie du nom
de dossier et donc la sauvegarde "plante" !
exemple : c:Program FilesMDfichier.txt
il ne compresse rien et créé un dossier c:FilesMD c 'est tout !!

Auriez-vous une idée ? dans les propriétés du controle je ne trouve rien


par
rapport à cela !!



Hello,

c'est un comportement normal, pas un bug.
Pour éviter cela, il suffit d'entourer
le chemin complet avec des guillements, comme
ceci:
"c:Program FilesMDfichier.txt"

C'est standard DOS.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Laurent JOLLY
Salut
merci pour ton aide, mais j'affecte déjà le nom du fichier en question dans
une variable chaine de caractères :
Dim ChaineTraitée as string
ChaineTraitée = "c:Program FilesMDfichier.txt"

Donc apparemment cet aspect là ne joue pas...

J'espère que d'autres liront cela pour m'éclairer... :-)





Hello,

c'est un comportement normal, pas un bug.
Pour éviter cela, il suffit d'entourer
le chemin complet avec des guillements, comme
ceci:
"c:Program FilesMDfichier.txt"

C'est standard DOS.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;





Avatar
Laurent JOLLY
au fait pour info je suis sur XP !
:-)


"Laurent JOLLY" a écrit dans le message de news:
dg3j0q$4jg$
Bonjour
Nous venons de découvrir un 'tit bug au sujet du contrôle DYNAZIP (servant
à compresser, décompresser et de créer un fichier ZIP)
Lorsqu'on indique des fichiers ayant un dossier avec un espace il ne prend
seulement qu'une partie du nom
de dossier et donc la sauvegarde "plante" !
exemple : c:Program FilesMDfichier.txt
il ne compresse rien et créé un dossier c:FilesMD c 'est tout !!

Auriez-vous une idée ? dans les propriétés du controle je ne trouve rien
par rapport à cela !!
Merci bcp !
Laurent



Avatar
scraper
Bonjour Laurent JOLLY, dans le message
news: dg3r2i$9ff$
tu disais :

Salut
merci pour ton aide, mais j'affecte déjà le nom du fichier en
question dans une variable chaine de caractères :
Dim ChaineTraitée as string
ChaineTraitée = "c:Program FilesMDfichier.txt"



essaie ce que tu dit Jean Marc, comme par exemple :

ChaineTraitée = Chr$(34) & "c:Program FilesMDfichier.txt" & Chr$(34)



--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper
Avatar
Christian Hugoud
Ce n'est pas ce qui est dit : il faut rajouter des guillemets dans ta
string, pour "entourer" les chemins qui ont des espaces. Effectivement,
j'avais oublié cette combine.

Christian

"Laurent JOLLY" a écrit dans le message de news:
dg3r2i$9ff$
Salut
merci pour ton aide, mais j'affecte déjà le nom du fichier en question
dans une variable chaine de caractères :
Dim ChaineTraitée as string
ChaineTraitée = "c:Program FilesMDfichier.txt"

Donc apparemment cet aspect là ne joue pas...

J'espère que d'autres liront cela pour m'éclairer... :-)





Hello,

c'est un comportement normal, pas un bug.
Pour éviter cela, il suffit d'entourer
le chemin complet avec des guillements, comme
ceci:
"c:Program FilesMDfichier.txt"

C'est standard DOS.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;









Avatar
Laurent JOLLY
OK je n'avais pas compris , je les rajoute et je vous dit !
MERCI BCP


"Christian Hugoud" a écrit dans le message de news:
%
Ce n'est pas ce qui est dit : il faut rajouter des guillemets dans ta
string, pour "entourer" les chemins qui ont des espaces. Effectivement,
j'avais oublié cette combine.

Christian

"Laurent JOLLY" a écrit dans le message de news:
dg3r2i$9ff$
Salut
merci pour ton aide, mais j'affecte déjà le nom du fichier en question
dans une variable chaine de caractères :
Dim ChaineTraitée as string
ChaineTraitée = "c:Program FilesMDfichier.txt"

Donc apparemment cet aspect là ne joue pas...

J'espère que d'autres liront cela pour m'éclairer... :-)





Hello,

c'est un comportement normal, pas un bug.
Pour éviter cela, il suffit d'entourer
le chemin complet avec des guillements, comme
ceci:
"c:Program FilesMDfichier.txt"

C'est standard DOS.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;













Avatar
Laurent JOLLY
MERCI C'EST OK CA FONCTIONNE !!
fallait le savoir... :-)
CiAo


"scraper" a écrit dans le message de news:

Bonjour Laurent JOLLY, dans le message
news: dg3r2i$9ff$
tu disais :

Salut
merci pour ton aide, mais j'affecte déjà le nom du fichier en
question dans une variable chaine de caractères :
Dim ChaineTraitée as string
ChaineTraitée = "c:Program FilesMDfichier.txt"



essaie ce que tu dit Jean Marc, comme par exemple :

ChaineTraitée = Chr$(34) & "c:Program FilesMDfichier.txt" & Chr$(34)



--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper


Avatar
jt
"scraper" a écrit dans le message de news:

Bonjour Laurent JOLLY, dans le message
news: dg3r2i$9ff$
tu disais :

Salut
merci pour ton aide, mais j'affecte déjà le nom du fichier en
question dans une variable chaine de caractères :
Dim ChaineTraitée as string
ChaineTraitée = "c:Program FilesMDfichier.txt"



essaie ce que tu dit Jean Marc, comme par exemple :

ChaineTraitée = Chr$(34) & "c:Program FilesMDfichier.txt" & Chr$(34)



--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper


tu peux egalement utiliser l'api qui te donne le nom 8.3 des fichiers voici
un exemple


Private Declare Function GetShortPathName Lib "kernel32" Alias
"GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As
String, ByVal lBuffer As Long) As Long

Private Sub Form_Load()
MsgBox GetShortPath("c:Program FilesMicrosoft
OfficeOfficeWinword.exe")

End Sub
Public Function GetShortPath(strFileName As String) As String
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail:
Dim lngRes As Long, strPath As String
'Create a buffer
strPath = String$(165, 0)
'retrieve the short pathname
lngRes = GetShortPathName(strFileName, strPath, 164)
'remove all unnecessary chr$(0)'s
GetShortPath = Left$(strPath, lngRes)
End Function

comme les liens l'indique ce code est issu de AllApi
Avatar
jt
"jt" a écrit dans le message de news:
%23Xlj8$$

"scraper" a écrit dans le message de news:

Bonjour Laurent JOLLY, dans le message
news: dg3r2i$9ff$
tu disais :

Salut
merci pour ton aide, mais j'affecte déjà le nom du fichier en
question dans une variable chaine de caractères :
Dim ChaineTraitée as string
ChaineTraitée = "c:Program FilesMDfichier.txt"



essaie ce que tu dit Jean Marc, comme par exemple :

ChaineTraitée = Chr$(34) & "c:Program FilesMDfichier.txt" & Chr$(34)






tu peux aussi tripler les quotes

ChaineTraitée = """c:Program FilesMDfichier.txt"""


--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez.tiscali.fr

scraper


tu peux egalement utiliser l'api qui te donne le nom 8.3 des fichiers
voici un exemple


Private Declare Function GetShortPathName Lib "kernel32" Alias
"GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As
String, ByVal lBuffer As Long) As Long

Private Sub Form_Load()
MsgBox GetShortPath("c:Program FilesMicrosoft
OfficeOfficeWinword.exe")

End Sub
Public Function GetShortPath(strFileName As String) As String
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail:
Dim lngRes As Long, strPath As String
'Create a buffer
strPath = String$(165, 0)
'retrieve the short pathname
lngRes = GetShortPathName(strFileName, strPath, 164)
'remove all unnecessary chr$(0)'s
GetShortPath = Left$(strPath, lngRes)
End Function

comme les liens l'indique ce code est issu de AllApi