Comment savoir si un fichier est ouvert ou fermé [Résolu]

Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Dernière intervention
22 juillet 2013
- - Dernière réponse : dedenet2
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Dernière intervention
22 juillet 2013
- 4 avril 2010 à 12:38
Bonjour ,
Je n'ai pas trouvé un code qui ne permet de
savoir si un fichier est ouvert.
J'ai trouvé un code pour VB6 qui utilise les
fonction lopen er lclose mais je n'ai pas
arrivé à l'adapter sur VBnet2003.

Pouvez m'aider à trouver ce code ?
Merci


Dedenet2
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
3
Merci
Salut
Ne sachant pas répondre à ta question (*), j'ai ouvert mon moteur de recherche préféré (Bing) et j'y ait tapé
VB "file is open"
Et bah le premier résultat est un exemple de test si un fichier est ouvert.
Ca tombe bien, non ?
Curieux, je l'ai ouvert et j'ai lancé le projet proposé :
Il te suffit de faire ceci et d'intercepter l'erreur qui surviendra si le fichier est innaccessible :
    Dim sFichier As String = "C:\toto.txt"
    Try
        Dim FS As IO.FileStream = IO.File.Open(sFichier, IO.FileMode.Open, _
                                               IO.FileAccess.Read, IO.FileShare.None)
        ' Ouverture Ok, donc non déjà ouvert : referme
        FS.Close()
        FS.Dispose()
        FS = Nothing
        MsgBox("Fichier non ouvert")
    Catch ex As IO.IOException
        MsgBox("""" & sFichier & """ déjà ouvert" & Environment.NewLine & ex.Message)
    Catch ex As Exception
        MessageBox.Show("Erreur inconnue" & Environment.NewLine & ex.Message)
    End Try

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Dernière intervention
2 juin 2016
0
Merci
Bonjour

Je réponds en posant une nouvelle question? excusez-moi mais le sujet peut m'intéresser

Si le fichier est ouvert par un autre utilisateur que peut on y faire? demander si l'utilisateur veut le fermer? mais lorsqu'on est dans une application que peut-on faire : rien?

Hors application : encore Faut t'il être administrateur du serveur où le fichier est resté ouvert pour utiliser l'option -u de l'outil handle de Microsoft

http://www.microsoft.com/france/technet/sysinternals/SystemInformation/Handle.mspx
Commenter la réponse de cs_loulou69
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
Ca, je ne sais pas.
Il faudrait poser la question à des admins réseau qui gèrent des parcs informatiques.
A mon avis, fermer autoritairement est une mauvaise idée.
Commenter la réponse de cs_Jack
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
CreateFile() et CloseHandle() évitent la gestion d'exception et le chargement du moteur de script.
FS finissant lui meme par appeler l'API, autant le faire directement.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Dernière intervention
22 juillet 2013
0
Merci
Bonjour ,
Merci pour ce code.
J'ai testé ce code sur Vbnet2003 mais j'étais
obligé de supprimer "FS.Dispose()".
Cela semble focntionner sauf quand on réouvre un
fichier txt sur NotePad.
Moi , je veux vérifier si des fichiers dwg sont
ouverts ou pas.
Cependant ,je suis étonné de cette méthode qui
consiste à réouvrir un fichier pour voir si il
est ouvert !
N'existe t'il pas une autre méthode plus simple ?
Par une fonction ou par les API ?

Merci
Commenter la réponse de dedenet2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.