OVH Cloud OVH Cloud

fichier existe

4 réponses
Avatar
lou
bonjour
voici le problemme

je teste l'existence d'un fichier sur un cd rom

avec
if (dir(cdLettre,vbDirectory)<>"" then
msgbox "existe"
else
msgbox "absent"
end if
ceci fontionne bien lorque il y a quelque chose sur le cd rom
parcontre quand le cd est vide je reçois
erreur d'execution 52
nom ou n° de fichier incorrect
ce qui a mon avis semble normal vu que le cd est vide
question comment eviter ce bug

merci
lou

4 réponses

Avatar
Guillaume
Salut,
Moi je dirais qu il faut d abord voir si il y a un cd rom.
ton erreur est suremen erreur "periperique non pret" qu on retrouve si on tente d acceder au cdrom par le poste de travail alors que ce dernier est vide.
Par contre je connais pas la fonction de tester ca...
peut etre qu avec ca :
Public Function TesterPresence() As Boolean
Fichier = "d:"
Dim a As Long
On Error Resume Next
a = FileLen(Fichier)
TesterPresenceFichier = Not (Err.Number > 0)
On Error GoTo 0
end function
Avatar
Lali
Puis c'est normal pour toi, tu devra simplement intercepte
r l'erreur 52 en ajoutant quelques lignes à ton script
comme suit :

On Error GoTo ErrorHandler

If Dir(dir(cdLettre,vbDirectory)<>"" , vbDirectory) <> ""
Then
MsgBox "existe"
Else
MsgBox "absent"
End If

Exit Sub
ErrorHandler:
If Err.Number = 52 Then
Resume Next
Else
MsgBox Err.Description & " " & Err.Number
End Id

-----Message d'origine-----
bonjour
voici le problemme

je teste l'existence d'un fichier sur un cd rom

avec
if (dir(cdLettre,vbDirectory)<>"" then
msgbox "existe"
else
msgbox "absent"
end if
ceci fontionne bien lorque il y a quelque chose sur le cd
rom

parcontre quand le cd est vide je reçois
erreur d'execution 52
nom ou n° de fichier incorrect
ce qui a mon avis semble normal vu que le cd est vide
question comment eviter ce bug

merci
lou



.



Avatar
Lali
Puis c'est normal pour toi, tu devra simplement intercepte
r l'erreur 52 en ajoutant quelques lignes à ton script
comme suit :

On Error GoTo ErrorHandler

If Dir(dir(cdLettre,vbDirectory)<>"" , vbDirectory) <> ""
Then
MsgBox "existe"
Else
MsgBox "absent"
End If

Exit Sub
ErrorHandler:
If Err.Number = 52 Then
Resume Next
Else
MsgBox Err.Description & " " & Err.Number
End Id

-----Message d'origine-----
bonjour
voici le problemme

je teste l'existence d'un fichier sur un cd rom

avec
if (dir(cdLettre,vbDirectory)<>"" then
msgbox "existe"
else
msgbox "absent"
end if
ceci fontionne bien lorque il y a quelque chose sur le cd
rom

parcontre quand le cd est vide je reçois
erreur d'execution 52
nom ou n° de fichier incorrect
ce qui a mon avis semble normal vu que le cd est vide
question comment eviter ce bug

merci
lou



.



Avatar
Xavier HUE
Bonjour lou,

Intercepter l'erreur:
Dim strNomRepertoire As String

On Error Resume Next
strNomRepertoire = Dir(cdLettre,vbDirectory)

If Err.Number <> 0 Then
msgbox "existe"
else
msgbox "absent"
end if

On Error Goto 0

Tu peux également utiliser la Méthode FileExists de
l'objet FileSystemObject. Si dessous extrait de l'aide:

FileSystemObject, objet


Description

Donne accès au système de fichier d'un ordinateur.

Syntaxe

Scripting.FileSystemObject

Remarques

Le code suivant illustre comment l'objet FileSystemObject
est employé pour renvoyer un objet TextStream pouvant être
lu, ou dans lequel il est possible d'écrire des
informations :

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:fichiertest.txt", True)
a.WriteLine("Ceci est un test.")
a.Close

Dans le code ci-dessus, la fonction CreateObject renvoie
l'objet FileSystemObject (fs). La méthode CreateTextFile
crée ensuite le fichier sous forme d'objet TextStream (a)
et la méthode WriteLine écrit une ligne de texte dans le
fichier texte créé. La méthode Close vide le tampon et
ferme le fichier.

FileExists, méthode


Description

Renvoie la valeur True si un fichier spécifié existe,
False dans le cas contraire.

Syntaxe

object.FileExists(filespec)

La syntaxe de la méthode FileExists comprend les éléments
suivants :

Élément Description
object Correspond toujours au nom d'un objet
FileSystemObject.
filespec Le nom du fichier dont l'existence est à
déterminer. Une spécification de chemin complet (absolue
ou relative) est nécessaire si le fichier ne se trouve pas
dans le dossier courant.

Cordialement.