VB.Net Condition Si aucune fichier dans un répertoire alors ??

Résolu
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 12 sept. 2008 à 17:29
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 14 sept. 2008 à 17:30
Salut à tous...


Je cherche un moyen de coder une ligne pour faire une conditon qui dit:


si le répertoire ne contient aucun fichier alors...


Je réussi maintenant à copier coller des fichier mais jene trouve pas comment
coder à savoir s'il n'y a aucun fichier dans un répertoire.


Merci de votre aide

6 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
12 sept. 2008 à 19:03
Salut,


If IO.Directory.GetFiles("Dossier").Length = 0 Then
   ' Le dossier "Dossier" ne contient aucun fichier
End If


Copier-coller des fichiers tu dis? J'appelle ça copier :
IO.File.Copy("FichierSource", "FichierDestination")

Gillardg> drôle de code que tu nous à mis là...
Si tu parcours les fichiers d'un dossier, inutile de tester si le fichier existe, c'est forcément le cas.
De plus, tout ton code après le If IO.File.Exists(file) Then ... End If ne sert à rien du tout, de toute façon on y arrivera jamais... et donc ton x ne sert à rien non plus.
3
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
12 sept. 2008 à 17:57
Function

nofileindir(


ByVal

dirpath


As





String

)


As





Boolean








Dim

x


As





Integer

= 0



Try








For





Each

file


As





String





In





My

.Computer.FileSystem.GetFiles(dirpath, FileIO.SearchOption.SearchAllSubDirectories,


"*.*"

)



If

x = 0


Then








If

IO.File.Exists(file)


Then








Return





False








Else








Return





True








End





If








End





If


x = x + 1








Next








Catch

ex


As

ExceptionMsgBox(ex.Message)



End





Try








If

x = 0


Then








Return





True








End





If








End





Function











Bonjour chez vous !
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
12 sept. 2008 à 19:54
crois tu cela ?

si tu testes sur un dossier qui contient des fichiers le x sert bien mais c'est tout à fait possible que mon code soit trop long j'ai fait ça à 2 doigts en mangeant du chocolat

Bonjour chez vous !
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
12 sept. 2008 à 21:03
J'en suis sûr

J'ai viré le Try Catch, il peut être utile pour savoir que le chemin du dossiers est invalide, mais je pense qu'il serait nettement mieux de renvoyer l'erreur à l'appelant dans ce cas (l'appelant doit savoir que le dossier est faux)

Dim x As Integer = 0
For Each file As String In My.Computer.FileSystem.GetFiles(...)
    ' 1ère itération, X vaut forcément 0
    If x = 0 Then
        ' FileSystem.GetFiles ne renvois pas des fichiers qui n'existent pas
        If IO.File.Exists(file) Then
            Return False
        Else
            Return True
        End If
        ' On arrive jamais ici, car on retourne False (ou True)
    End If
    ' On arrive donc jamais ici non plus, x = x + 1 est donc inutile
    x = x + 1
Next
' Si on est ici, x n'a jamais été modifié, il vaut donc forcément 0
If x = 0 Then
    Return True
End If

X vaut donc 0 du début à la fin, il est donc inutile. Si on enlève le rouge et x, ça donne:
For Each file As String In My.Computer.FileSystem.GetFiles(...)
    Return False
Next
Return True

Ceci fait donc exactement la même chose que ton code
C'est une possibilité, elle n'est finalement pas tellement différente de la mienne
0

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

Posez votre question
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
12 sept. 2008 à 23:41
ben zut tu as raison je viens de vérifier mais comme je l'ai dit plus haut j'ai fait ça à avec 2 doigts en mangeant

c'est décidé je ne code plus en mangeant

Bonjour chez vous !
0
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
14 sept. 2008 à 17:30
merci à vous 2  je vérifie cela lundi AM

bye bye
0
Rejoignez-nous