Pb de Chemin d'un dossier dans une variable

mobbydik Messages postés 13 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 17 juillet 2007 - 27 nov. 2003 à 11:56
mobbydik Messages postés 13 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 17 juillet 2007 - 27 nov. 2003 à 16:06
Bjr,
Je debute en VB et j'essaye d'écrire un programme pour effacer des fichiers stockés sur un serveur d'un groupe d'utilisateur
Pour cela, j'ai ecrit deux routines, la prem permet de trouver où est situé le dossier "Profil" . La recherche effectuée, le chemin complet est stocké ds une variable Foldername.
Ensuite j'appelle la routine effacefichier et là mom programme plante suivant les lignes de prog utilisées.

Private Sub Form_Load()
Dim valeur, startpath As String
Dim Search, FolderName, toto, nondisk
Dim TypeLecteur As String
Dim letdisk(100) As String

Set fso = CreateObject("scripting.FileSystemObject")
Set dc = fso.Drives
x = 0
y = 0
For Each d In dc
valeur = d.DriveType
nondisk = d.DriveLetter
If valeur = 2 Then Call tableaudd(letdisk, x, nondisk)
Next
For y = 0 To 100
startpath = letdisk(y) & ":"
If startpath = ":" Then
Call effacefichier(FolderName)
End If
Search = Dir$(startpath & "*.*", vbDirectory)

Do While Search <> ""

If Search = "Profil" Then
FolderName = startpath & Search

End If

Search = Dir$() ' Recherche le prochain
DoEvents
Loop
Next y

End Sub

Private Sub effacefichier(FolderName)

Dim nomutil(100) As String
Dim Search As String
Dim startpath As String
Dim x As Integer
Dim y As Integer
Dim fso, r, t, s, u, v
ProgressBar1.Min = 0
ProgressBar1.Value = 0

Form1.Show

Set fso = CreateObject("Scripting.FileSystemObject")

x = 0
y = 0

startpath = FolderName 'Ligne qui fait planter le programme
toto = Dir$(startpath & "*.*", vbDirectory)

Do While toto <> ""

If (toto <> "." And toto <> ".." ) Then

If (GetAttr(startpath & toto) And vbDirectory) Then

x = x + 1
nomutil(x) = toto
.
.
.

Je pense qu'il ne considère pas FolderName comme le chemin d'un dossier, car si je lui donne la ligne de programme suivante :startpath = "d:\profil", le program ne plante pas

Je ne sais pas si j'ai été tres clai mais QQ peut il m'aider à resoudre mon pb

merci

mobbydik@yahoo.fr

2 réponses

cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
27 nov. 2003 à 15:08
Mets un break point la (F9 sur la ligne)

startpath = letdisk(y) & ":"

Et regardes les valeurs de tes strings à chaque passe

Je ne capte pas trop ce qu'est tableaudd???

Et un conseil : utilise des noms bcp + parlant et français. Par exemple, "nondrive", je croyais que c'était une variable qui regardai si c'était un drive ou NON. Si c'est le NOM que tu veux, mets NOMDrive, ou encore mieux, DriveName pour être portable pour des non frenchies : ).
0
mobbydik Messages postés 13 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 17 juillet 2007
27 nov. 2003 à 16:06
Bjr,

Merci pour ton aide. En fait j'ai un pb car il fallait ecrire:
startpath = FolderName & "" pour que le prog marche.
En fait pour le moment, je suis en train de l'ecrire, donc une fois terminer, je le mettrais en forme avec des variable explicites. Tableaudd est une une variable tableau dans lequel je stocke la lettre de designation des disques dur.

a+
mobbydik@yahoo.fr
0
Rejoignez-nous