Copie d'un fichier sans en connaitre la lettre du lecteur source (HELP HELP HELP

Résolu
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005
- 19 oct. 2005 à 16:30
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
- 20 oct. 2005 à 18:18
Bonjour,

Mon appli est bientot fini
Cependant jai un gros soucis
Le fichier a copier se situe sur un lecteur dont n'ai pas la lettre
jai eu bo ecrir toutes les commandes de lignes possible et imaginable il en retourne toujours que ce n'est pas correct

Mon projet est a rendre ce soir au plus tard demain matin

un autre probleme commet mettre en con cordance une progress bar et un fichier en train de se copier

Parceque jen ai un de 7 k pas de pb mais un autre de 63 m qui fini de se chargé quand la progress bar se termine se qui fait un ecran tout blc et donne limpression dun bug

Donc pour reca: copier coller de 2 dossier d'un lecteur amovible dont on ne connai pas la lettre a une destination connu

et inversement en 2eme etape on connai le chemin source mais pas destination

parceque la je menfonce dans des lignes de codes qui ne servent structement

Merci a toutes ames charitables

18 réponses

PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
20 oct. 2005 à 14:10
oulahhhhhhh

bon, le temps que tu répondes, tu pourra déjà essayer comme çà.

c'est pas gagné


Dim ORIGINAL_TIME As Date
Dim SECONDS_TO_WAIT As String
'
'
Private Sub cmd_ANNULER_Click()
' !!!!!!!!
Timer1.Enabled = False
ProgressBar1.Value = 0
' !!!!!!!

FRM_PATIENTEZ.Hide
FRM_TEST.Hide
FRM_TEST_DD.Hide
FRM_CONFIRMATION.Show
End Sub
'
'
Private Sub Timer1_Timer()
Lbl_rep.Caption = "deb: " & App.Path & " fin"

' ##########################################################################
'
' ah ouai?!!! donc tu copies "Korrigan.ini" à chaque fois que
' tu rentres dans le timer?!! ...
'
' je relève même pas le reste! tout est faut
'
' ##########################################################################

' If ProgressBar1.Value < ProgressBar1.Max Then
' ProgressBar1.Value = ProgressBar1.Value + 5
' FileCopy App.Path + "\KORRIGAN.INI", "C:\Windows\Korrigan.ini" 'FileCopy Origine, Destination
'
' If ProgressBar1.Value = 15 Then
' ProgressBar1.Value = ProgressBar1 + 5
' FileCopy "c:\formation.zip", App.Path + "\formation.zip"
'
' If ProgressBar1.Value = 30 Then
' ProgressBar1.Value = ProgressBar1.Value + 10 'filecopy App.Path + "\grpc.db", "C:\Base_GR\Grpc.db"
'
' If ProgressBar1.Value = 45 Then
' ProgressBar1.Value = ProgressBar1.Value + 5
'
' If ProgressBar1.Value = 60 Then
' ProgressBar1.Value = ProgressBar1.Value + 10
'
' If ProgressBar1.Value = 75 Then
' ProgressBar1.Value = ProgressBar1.Value + 5
'
' If ProgressBar.Value = 90 Then
' ProgressBar1.Value = ProgressBar1.Value + 10
'
' If ProgressBar1.Value = 95 Then
' ProgressBar1.Value = ProgressBar1.Value + 5
'
' If ProgressBar1.Value = ProgressBar1.Max Then
' Timer1.Enabled = False
' End If
' End If
' End If
' End If
' End If
' End If
' End If
' End If
' End If

With ProgressBar1
Select Case .Value
Case .Max
ProgressBar1.Value = 0
SECONDS_TO_WAIT = "50"
ORIGINAL_TIME = DateTime.Time
FRM_PATIENTEZ.Hide
FRM_FINAL.Show
Timer1.Enabled = False
'eh hop, plus besoin du timer2
Exit Sub

Case Else: .Value = .Value + 5
End Select

Select Case .Value
Case 5: FileCopy App.Path & "\KORRIGAN.INI", "C:\Windows\Korrigan.ini"
Case 20: FileCopy "c:\formation.zip", App.Path & "\formation.zip"
Case 35: .Value = .Value + 5: 'FileCopy App.Path & "\grpc.db", "C:\Base_GR\Grpc.db" ' ??????
Case 65: .Value = .Value + 5
Case 95: .Value = .Value + 5
'test pour toi. ne pas laisser
Case Else: If (.Value Mod 5 <> 0) Then MsgBox "Interval de Timer1 INCORRECT !!!!!", vbCritical, "Timer Error": .Value = .Max
End Select
End With

End Sub



<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


PCPT [AFCK]
3
acecel
Messages postés
140
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
14 octobre 2006

19 oct. 2005 à 16:39
Explique un peu plus. de quelle manière ouvre tu le fichier?
L'utilisateur choisi le fichier à utiliser ou c'est défini en dur.
Pourquoi ne connait tu pas le lecteur sur lequel est le fichier?

(Si par exemple le fichier source est dans le même répertoire que ton appli, alors tu peut utiliser le App.Path .)
0
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

19 oct. 2005 à 16:48
Merci de repondre si rapidement

En faite le principe et de copier un fichier .INI, .Db et créer un formation.zip
ca ya pas de probeme un filecopy suffit

les fichiers ce trouvent sur un disques amovibles (clé usb ou disquette zip)
Donc à fortiori cela peut etre b d e f g h i k ...

2eme pb pr fer des test jai inserer des lettre de lecteurs que je connaissai deja
ca copie parfaitement seul hic les fichiers se copie a la fin de la barre de progression ce qui donne limpression dun bug puisque le processus normal de .HIde et .show et ralentit par 63Mo de copier coller

Jai essayé pas mal de chose mais la je suis a bout de ressources

Merci de prendre la peine dessayer de maider c sympas
0
acecel
Messages postés
140
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
14 octobre 2006

19 oct. 2005 à 17:00
En faite le principe et de copier un fichier .INI, .Db et créer un formation.zip
ca ya pas de probeme un filecopy suffit

les fichiers ce trouvent sur un disques amovibles (clé usb ou disquette zip)
Donc à fortiori cela peut etre b d e f g h i k ...

> Soit tu utilise un contrôle CommandDialog (.ShowSave) ?
et tu choisis le dossier (utilise les .Flags pour afficher que les dossiers)
> Soit tu utilise un contrôle DriveListBox ... ?
et tu choisis le disque à utiliser. (voir rajoute un DirListBox pour choisir le dossier)

2eme pb pr fer des test jai inserer des lettre de lecteurs que je connaissai deja
ca copie parfaitement seul hic les fichiers se copie a la fin de la barre de progression ce qui donne limpression dun bug puisque le processus normal de .HIde et .show et ralentit par 63Mo de copier coller

> Utilise un DoEvents pour forcer le rafraichissement de ton contrôle ?

Ps : si j'ai mal compris ton problème, excuse moi mais je suis un peu crevé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

19 oct. 2005 à 17:11
Oui excuses moi moi aussi lol

Mais a quel moment je lutilise Doevents
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
19 oct. 2005 à 19:17
salut,

voici une procédure pour tester tous les Disques, si tu ne dois pas laisser l'utilisateur le sélectionner seul....


Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" _
(ByVal pszPath As String) As Long
'
'
Private Sub Form_Load()
' ton nom de fichier à trouver, ou répertoire complet + nom, sans la lettre "C:"
Dim MyFile As String
MyFile = "blabla.INI"

Dim MyDrive As String
MyDrive = "0"
' on va chercher de A à Z
For i = 65 To 90
If CBool(PathFileExists( Chr (i) & ":" & MyFile)) Then
MyDrive = Chr(i)
Exit For
End If
Next i

' si MyDrive est différent de "0", c'est bon
If MyDrive <> "0" Then
MsgBox Chr(34) & MyFile & Chr(34) & " trouvé sur le disque " & _
Chr(34) & MyDrive & ":" & Chr(34), 32
Else
MsgBox Chr(34) & MyFile & Chr(34) & " introuvable", 32
End If
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


PCPT [AFCK]
0
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

20 oct. 2005 à 10:46
Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

C'est tres gentil

Pcpt et aussi acecel


Deavoir pri la peine de me repondre je pense que je lauré fini aujourdhui cette apli Enfin lol


Jen auré apri des choses en une semaine lol


Je peux abusé de votre compassion????



Pour le gros fichier de 63Mo

avec la progress barre

Jexplik le fichier .Db a copier fait 63Mo
Et en faite la bar de progress avance et a la fin de son process la le ficheir grpc se charge se qui rend les fenetre toute blanche ki donne limpression dun bug sen est un dailleur puisque plus rien ne marche sauf si on attend une ou deux minute ca reapparait

En gros comment mettre en coincidence une progressBAr et un gros fichier parceque pour les ko ca marche
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
20 oct. 2005 à 11:31
un petit morceau de code aiderait à mieux voir ton erreur, même s'il est certain que c'est un oubli de DoEvents (OS perd la main)

PCPT [AFCK]
0
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

20 oct. 2005 à 12:42
on men a deja parler d'ailleur mais je ne sais pas ou le mettre en faite voici le code

Dim ORIGINAL_TIME As Date
Dim SECONDS_TO_WAIT As String


Private Sub cmd_ANNULER_Click()
FRM_PATIENTEZ.Hide
FRM_TEST.Hide
FRM_TEST_DD.Hide
FRM_CONFIRMATION.Show
End Sub


Private Sub Timer1_Timer()
Lbl_rep.Caption = "deb: " + App.Path + " fin"


If ProgressBar1.Value < ProgressBar1.Max Then
ProgressBar1.Value = ProgressBar1.Value + 5
FileCopy App.Path + "\KORRIGAN.INI", "C:\Windows\Korrigan.ini"
'FileCopy Origine, Destination
If ProgressBar1.Value = 15 Then
ProgressBar1.Value = ProgressBar1 + 5
FileCopy "c:\formation.zip", App.Path + "\formation.zip"
If ProgressBar1.Value = 30 Then
ProgressBar1.Value = ProgressBar1.Value + 10
'filecopy App.Path + "\grpc.db", "C:\Base_GR\Grpc.db"
If ProgressBar1.Value = 45 Then
ProgressBar1.Value = ProgressBar1.Value + 5
If ProgressBar1.Value = 60 Then
ProgressBar1.Value = ProgressBar1.Value + 10
If ProgressBar1.Value = 75 Then
ProgressBar1.Value = ProgressBar1.Value + 5
If ProgressBar.Value = 90 Then
ProgressBar1.Value = ProgressBar1.Value + 10
If ProgressBar1.Value = 95 Then
ProgressBar1.Value = ProgressBar1.Value + 5
If ProgressBar1.Value = ProgressBar1.Max Then
Timer1.Enabled = False






End If
End If
End If
End If
End If
End If
End If
End If
End If


End Sub




Private Sub Timer2_Timer()
If ProgressBar1.Value = ProgressBar1.Max Then
ProgressBar1.Value = 0
SECONDS_TO_WAIT = "50"
ORIGINAL_TIME = DateTime.Time
FRM_PATIENTEZ.Hide
FRM_FINAL.Show


End If


End Sub
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
20 oct. 2005 à 13:41
quels sont les intevalles de tes timers?
dit, tu pourrais pas aussi essayer de donner toutes les infos nécessaires? plutôt que de forcer l'autre à te les poser

on gagnerait tous du temps...
PCPT [AFCK]
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
20 oct. 2005 à 14:15
dsl pour les fautes

et code :
Case 35: .Value = .Value + 5':
FileCopy App.Path & "\grpc.db", "C:\Base_GR\Grpc.db"

et le ' ?????? parce que tu ne dis pas si tu as toi-même mis cette côte dans un but précis

ps : tu remarqueras que j'ai remplacé tes + par des &
0
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

20 oct. 2005 à 16:09
Excuses moi de mon manques de pertinence mais je suis plus habituée a Delphi java c que VB

Cependant c bon le fichier se copie en meme temps que la barre de progression jte remercie

une question: sous XP est il possible sans manipulation de lutilisatuer daller grace a une ligne de commande, copier un fichier
Je me pose la question car
Sous un fichier zipé avec le compresseur Windows tu as ex : H:\Formation.ZIP jusque la ok
Mais ensuite en cliquant dessus tu n'as plus de chemin ex : H:\formation.zip
--> Grpc
--> Korrigan

Moi en refaisant un FileCopy vers un dossier zipé tout se passe bien cependant lorsque je veux louvrir il me met une erreur ou c
le fichier et endommagé ou autre ou il me dit dinserer le disque multi....jai oublié

Donc je me pose la question de savoir si javais raison de pensé quavec Xp yavai ocun pb pour copier coller a linterieur dun fichié Zipé

Ps: Soit indulgent lool je rentre dans le timer parceque javais tout essayé lol je connais Vb depuis 1 semaine lol
0
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

20 oct. 2005 à 16:11
oui jallais te le demandé pk des & au lieu de +

Pas grave pr les fautes tu me pardonnes moi pour le reste lol
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
20 oct. 2005 à 16:28
re,
dans l'ordre :
les fichier "zip par xp ou w2k" sont à se représenter (pour mieux comprendre) comme un emplacement virtuel....
c'est pas vraiment çà, mais çà va être plus clair comme çà....
donc au moment ou tu ouvres ~le faux-zip~, dit toi qu'il est dans un emplacement non-inscriptible.
tu peux le supprimer complètement, ou l'écrire complètement (selon les droits utilisateur), mais pas le modifier.

voilà pourquoi "pas de chemin", et pourquoi "pas vraiment ouvrable" (il ouvre virtuellement un copie du contenu).
preuve en est, contrairement à winzip ou winrar par exemple, qui peuvent faire le listing du contenu, un fichier compressé par W2k+ nécessite
la place de décompression sur le Dur rien que pour le listing.

indulgent.. mouaip, c'est pas mon projet, m'en fiche un peu^^

& et pas +
+ était pour VB4 (et 5). il est encore toléré dans VB6, mais est souvent source d'ennuis, notamment lors des concanénations multi-types.
donc autant prendre tout de suite les bonnes habitudes ;)

bon, beh si tout fonctionne, c'est cool...
pense à valider la ou les réponses pour ceux qui reliront le Topic.

@+ & bonne continuation
PCPT [AFCK]
0
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

20 oct. 2005 à 16:46
oui jmen doute que tu tenfous loool

Donc l'histoir de creation dun ZIP copier coller dedans c nimporte quoi?
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
20 oct. 2005 à 17:32
c'est n'importe quoi de croire qu'un fichier compressé par l'utilitaire de Windows peut être modifié sans être décompressé.
0
shaiinna
Messages postés
32
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
2 novembre 2005

20 oct. 2005 à 17:41
Oui bon bah chui dans la merde jcroyais avoir fini cte truc ... javais crer un decompresseur mais il ne le veulent pas lutilisateur de dois
rien voir paraitre
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
20 oct. 2005 à 18:18
tapes "Zlib", plusieurs sources traitent avec cette DLL, tu pourras alors décompresser le fichier où tu veux, le modifier, le recompresser, etc.. tout çà en transparence pour l'utilisateur, aucun message quelconque.

Zlib est FreeWare.
tu peux aussi (sinon) utiliser les DLL de WinZip, WinRar, WinAce, etc... mais la compression ET/OU la décompression n'est pas libre de droits.

++
PCPT [AFCK]
0