browser64
Messages postés112Date d'inscriptiondimanche 24 avril 2005StatutMembreDernière intervention 5 décembre 2010
-
5 déc. 2006 à 21:35
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 2008
-
7 déc. 2006 à 08:06
Re:
Est-t-il possible de me donner un exemple concret a partir de la fonction : "voir-ci-dessous" c'est pour la suppresion de fichiers qui portent l'extension .ESTFR
Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Private Sub Form_Load()
???? ????????? ??????
End Sub
Comme cela je lance mon programme de manière a me supprimer automatiquement les extension .ESTFR, sur tout mon disque c:\ et des disques en reseau s'appellant //vt4 et //vt6
Je débute juste en Visual basic 6, donc j'apprend, et rien ne vaut un bon exemple ou j'ai plus qu'à rajouter le nom de l'extension qui me gêne c'est a dire .ESTFR au bon endroit.
Regarde les sources qui listent les fichiers de ton disque et de tes disques réseaux.
A chaque fichier trouvé portant l'extension .estfr, tu le supprime en appelant l'api.
browser64
Messages postés112Date d'inscriptiondimanche 24 avril 2005StatutMembreDernière intervention 5 décembre 2010 5 déc. 2006 à 21:53
Re :
J'ai tout essayer avec mes, mais j'ai des erreurs à chaque fois.
Je dois probablement faire des eoubli sur l'emplacement des fonctions appels et tout....
Je crois bien que sans exemple "concret" avoir des problèmes....c'est pas facile....chaud le vb6 !
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 déc. 2006 à 22:18
Ami Browser !
Ce n'est pas la fonction deletefileA qui te pose problème, mais, pour son utilisation, l'appel récursif d'une autre fonction en vue de lister les différents sous-répertoires et les fichiers qu'ils contiennent ....
Tu poses ici une question sur deletefile, tout en trouvant que c'est "chaud, VB" alors qu'il ne s'agit même pas d'une fonction de VB .....mais d'une fonction dont se sert VB sans ton intervention (c'est çà, VB)
Mais voyons donc ! Remplace-là par la fonction KILL (celle-là est de VB et elle utilisera à ta place la fonction DeleteFile)
Ton problème n'est donc pas à ce niveau, vois-tu.... mais à un autre (peut-être, surement même, à celui d'un autre "post" que tu as ouvert pour le même sujet !)
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 6 déc. 2006 à 04:52
Function
GetFilesPathFromDirectory(
ByVal
sDir
As String
,
ByRef
aRet()
As String
,
Optional ByVal
sFilter
As String
=
"*.txt"
)
As Long
'
GetFilesPathFromDirectory retourne -1 si aucun fichier trouvé
' sinon retourne la dimension du tableau, donc NB fichiers -1
(tableau commence à l'indice 0)
' init les
résultats
GetFilesPathFromDirectory = -1
Erase aRet
If RightB$(sDir, 2) <> "" Then sDir = sDir & ""
' formate le
chemin
Dim sFile As String, lIndex As Long
sFile = Dir(sDir & sFilter, vbHidden Or
vbSystem)
'
redimentionne après vérif premier fichier
If sFile <> vbNullString Then
lIndex = 0
ReDim aRet(lIndex)
aRet(lIndex) = sDir & sFile
sFile = Dir
' boucle sur tous les fichiers
Do While sFile <> vbNullString
lIndex = UBound(aRet) + 1
ReDim Preserve aRet(lIndex)
aRet(lIndex) = sDir & sFile
sFile = Dir
Loop
'
retour
GetFilesPathFromDirectory = lIndex
End If
End Function
' *****
EXEMPLE D'UTILISATION *****
Private Sub Test()
Dim aResultat() As String
Dim Folder As String
Dim lRet As Long
Dim i As Long
Folder = "C:\Windows" ' * ---> change ici le répertoire
lRet = GetFilesPathFromDirectory(Folder, aResultat(), "*.estfr")
If lRet <> -1 Then
For i = 0 To lRet
Kill Folder & aResultat(i)
Next i
End If
End Sub
browser64
Messages postés112Date d'inscriptiondimanche 24 avril 2005StatutMembreDernière intervention 5 décembre 2010 6 déc. 2006 à 06:55
Re :
Sur le code "voir ci-dessous" j'ai entré les disque sur lesquels je souhaite effectuer la suppression des extensions .ESTFR les disques sont c:\ et d:\
J'ai pas d'erreurs, mais cela ne marche pas les extensions sont toujours présentes sur les disques.
Je n'arrive pas a trouver, ou se trouve l'erreur ?
MERCI
Function GetFilesPathFromDirectory(ByVal sDir As String, ByRef aRet() As String, Optional ByVal sFilter As String = "*.ESTFR") As Long
GetFilesPathFromDirectory = -1
Erase aRet
If RightB$(sDir, 2) <> "" Then sDir = sDir & ""
Dim sFile As String, lIndex As Long
sFile = Dir(sDir & sFilter, vbHidden Or vbSystem)
If sFile <> vbNullString Then
lIndex = 0
ReDim aRet(lIndex)
aRet(lIndex) = sDir & sFile
sFile = Dir
Do While sFile <> vbNullString
lIndex = UBound(aRet) + 1
ReDim Preserve aRet(lIndex)
aRet(lIndex) = sDir & sFile
sFile = Dir
Loop
GetFilesPathFromDirectory = lIndex
End If
End Function
Private Sub Form_Load()
Dim aResultat() As String
Dim Folder As String
Dim lRet As Long
Dim i As Long
Folder = "C:"
Folder = "D:"
lRet = GetFilesPathFromDirectory(Folder, aResultat(), "*.ESTFR")
If lRet <> -1 Then
For i = 0 To lRet
Kill Folder & aResultat(i)
Next i
End If
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 6 déc. 2006 à 20:56
browser64, la fonction est celle de PCPT,
IL NE FAUT PAS changer l'extension dans son code, mais bel et bien comme je l'ai fait dans la sub exemple.
Ca change rien mais bon, c'est inutile.
Ensuite, tu as mis C:\ et D:\, sache que la fonction ne vas pas lire les sous dossiers, il faut mettre les chemins en dur.
Je pense que sur codyx, si besoins, tu devrais trouver une fonction qui cherche aussi dans les sous dossiers.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 7 déc. 2006 à 08:06
497580
browser64 ça a marché avec le xls? Si ça a marché avec le xls ça marche forcément en VB6 car à la base ce code est pour VB6 mais ça fonctionne avec VBA! Après si tu veux un code fonctionnel, c'est à toi de l'arranger à ta guise! Tout que je sais c'est que le code xls fonctionne et parcours tous les dossier et sous dossiers d'un disque! Après comme t'as dis =647037 mortalino il y a un snippet sur codyx mais ça utilse Fso!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas: