browser64
Messages postés112Date d'inscriptiondimanche 24 avril 2005StatutMembreDernière intervention 5 décembre 2010
-
15 févr. 2007 à 18:30
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
17 févr. 2007 à 12:32
Salut à tous,
Dans mon code "voir ci-dessous" je souhaite effectuer la suppression des extensions .ESTFR les disques sont c:\ et d:\ Ces extensions sont générées par mon prog de gestion de cartes SIM-GSM.
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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 15 févr. 2007 à 18:46
salut,
dans ton form_load, remplace
Kill Folder & aResultat(i)
par
Name aResultat(i) As LeftB$(aResultat(i), LenB(aResultat(i)) - 10)
ps : la fonction GetFilesPathFromDirectory a le paramètre extension en optionnel, tu n'as pas besoin de le modifier (*.* par défaut mais comme tu le changes à l'appel, aucun souci)
++
PCPT [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 15 févr. 2007 à 21:31
Bonsoir à tous
Un exemple, en vbs, à adapter pour VB6.
'Suppression disques de fichiers selon extension
Const strComputer = "."
Const strExt = "ppt" ' "ESTFR"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_DataFile where Extension = '" & strExt & "'")
For Each objFile in colFiles
MsgBox objFile.Name ' pour lecture
Set fso = CreateObject("Scripting.FileSystemObject")
'''''''''''''''''''''fso.DeleteFile(objFile.Name) ' pour suppression
Next
Set fso = Nothing
Set colFiles = Nothing
Set objWMIService = Nothing
browser64
Messages postés112Date d'inscriptiondimanche 24 avril 2005StatutMembreDernière intervention 5 décembre 2010 16 févr. 2007 à 16:04
Re :
J'ai effectué la modification en mettant "Name aResultat(i) As LeftB$(aResultat(i), LenB(aResultat(i)) - 10)" à la place de "Kill Folder & aResultat(i)".
Mais les extensions .ESTFR restent sur les disques C:\ et D:\
Mon code ci-dessous comporte une erreur mais je ne la trouve pas, peut-on me corriger le code ?
MERCI
Function GetFilesPathFromDirectory(ByVal sDir As String, ByRef aRet() As String, Optional ByVal sFilter As String = "*.*") As Long
GetFilesPathFromDirectory = -1
Erase aRet
If RightB$(sDir, 2) <> "" Then sDir = sDir & ""
Dim sFile As String, lIndex As Long
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
Name aResultat(i) As LeftB$(aResultat(i), LenB(aResultat(i)) - 10)
Next i
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 16 févr. 2007 à 16:12
le code actuel (testé) va renommer tes "fichiers.ESTFR" en "fichiers" (sans extension).
à noter que là, le listing ne se fait QUE dans le disque "D:"
(pas C puisque tu modifies la variable juste après, et pas dans les sous-dossiers puisque la fonction n'est pas récursive)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
browser64
Messages postés112Date d'inscriptiondimanche 24 avril 2005StatutMembreDernière intervention 5 décembre 2010 17 févr. 2007 à 07:08
Re :
Je ne vois vraiment pas comment faire pour que la suppression de toutes les extensions .ESTFR du disque C:\ et D:\ se fasse et cela a partir de tout les dossiers....sous dossiers......tout les attributs c'est a dire meme si les extensions sont en attribut Archive, Système, etc....
Peut-on me faire une correction de ce code ? car je ne parviens pas à enlever les .ESTFR des Disques C:\ et D:\