Détecter extension de fichier dans un répertoire.

Résolu
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 - 22 déc. 2010 à 13:17
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 - 23 déc. 2010 à 17:10
Bonjour,

Je voudrais dévelloper un widjet pour windows, mais je bloque.
En fait je voudrais qu'un mécanisme envoi une boite à dialogue quand celui détecte un fichier pour extension **** dans le repertoire ou racine ****.

> Fichier *.exe détecté sur racine C > alerte (ex: vbcritical)
ou

> Fichier *.exe détecté dans C:\MonDossier > alert (ex: vbcritical).

NOTE: J'ai essayé avec le code suivant sans succès:

Sub norep
 Dim fso, msg 
  Set fso = CreateObject("Scripting.FileSystemObject" ) 
  If (fso.FileExists("C:\*.bat" )) Then 
    MsgBox "Un fichier bat détecté sur la racine du lecteur C !",vbExclamation + vbOkOnly + vbApplicationModal + 0,"GADGET:" 
  Else 
    msg = "RAS." 
  End If
End Sub 


Merçi d'avance.

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 déc. 2010 à 14:01
normal, tu n'as pas assigné ton FSO...(faire un CreateObject Scripting.FileSystemObject, etc.)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
22 déc. 2010 à 13:59
sur que le FileExists ne fonctionne pas...

c'est ecrit noir sur blanc dans la doc..

Wildcard characters (*, ?, and so on) are not supported.


voir propriété Files d'un objet Folder (obtenu via GetFolder)

te suffira alors pour chacun des fichiers énuméré de tester le nom, pour en connaitre l'extension.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 3
22 déc. 2010 à 16:05
Re,

Le problème c'est que le widjet doit détecter si un ou des fichier(s) porte(nt) l'extension dans un dossier sans savoir le ou les nom(s) du ou des fichier(s).

Ex:

Il existe les fichiers suivants dans le dossier system32:
inetcpl.cpl
firewall.cpl
Mais le widjet ne connais pas les fichiers exitants (dû à une liste variante, système d'exploitation différents, ...).

En gros il faudrais traduire ce batch en VB:

if exist C:\Windows\system32\inetcpl.cpl goto alert
if exist C:\Windows\system32\firewall.cpl goto alert
if exist C:\Windows\system32\Settings.exe goto alert2
@exit
:alert
echo fichier CPL detecte dans le system32 !
if exist C:\Windows\system32\Settings.exe goto alert2
@exit
:alert2
echo fichier CPL detecte dans le system32 !
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
23 déc. 2010 à 07:56
je t'ai pourtant expliqué la marche à suivre...

itérer sur chaque entrée de la collection Files et tester le nom du fichier...

en gros, de tête :

For Each oFile in FSO.GetFolder("C:").Files
    If Right(oFile.Name, 4) = ".cpl" Then
     .... 
    End If
Next

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0

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

Posez votre question
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 3
23 déc. 2010 à 13:28
OK, merçi: je vais tester.
0
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 3
23 déc. 2010 à 13:57
J'ai testé comme suivant, mais il y a erreur:

Dim fso
Dim fso
For Each oFile in FSO.GetFolder("C:").Files
    If Right(oFile.Name, 4) = ".cpl" Then
    MsgBox "Un fichier cpl a detecte !",vbExclamation + vbOkOnly + vbApplicationModal + 0,"GADGET:" 
    End If
Next 
nrp()


...
Ligne: 2
Caract.: 1
Erreur: Objet requis: "
...
0
MacGaliver Messages postés 146 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 21 juillet 2013 3
23 déc. 2010 à 17:10
Merçi beaucoup !

Au moins je me coucherais moins bête !

Encore une fois merçi: je suis content ^c un gosse !
0