Bonjour,
Je cherche à tester si un fichier est utilisé dans mon code en VB.net:
Bonjour,
Je cherche à tester si un fichier est utilisé dans mon code en VB.net:
Bonjour,
Il faut chercher à l'ouvrir en mode exclusif. Si il est en cours d'utilisation, il y aura une exception??
Justement je ne veux pas d'exception
Je veux savoir si le fichier est déjà ouvert avant de l'ouvrir.
tu fais comme ça :Envoyé par f_abibi
le "resume next" ignore l'exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Function IsFileOpen(ByVal strFic As String) As Boolean Dim fic As Integer On Error Resume Next fic = FreeFile() Open strFic For Input Access Read Lock Read Write As fic If Err.Number = 0 Then IsFileOpen = False Close fic Else IsFileOpen = True End If End Function
Cette ligne me pose problème :
Open strFic For Input Access Read Lock Read Write As fic
Elle n'est pas reconnu dans l'éditeur Visual Basic 2005
Ben justement c'est l'exception qui te permettra de savoir si le fichier est en cours d'utilisation, ceci en utilisant un bloc Try/CatchEnvoyé par f_abibi
![]()
A ma connaissance, il n'y a pas d'autres moyens de gérer celà.
Donc pour ton cas de figure, il suffit de te créer une méthode type
Bien sûr ici je n'ai pas traité toutes les autres exceptions possibles comme le fichier inexistant etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Imports System Imports System.IO '... Public Shared Function IsOpen(ByVal Filepath As String) As Boolean Dim result As Boolean = False Try 'tenter l'ouverture du fichier en mode exclusif 'fermer le fichier Catch ex As IOException result = True End Try Return result End Function
Le message c'est "Open n'est pas déclaré. La fonction d'E/S de fichier est disponible dans l'espace de noms 'Microsoft Visual Basic' "
Envoyé par karami
heu karami, il est temps de te mettre au VB.Net
![]()
Merci pour l'aide.
ok mais comme tu le vois mon exemple de code est facilement compréhensible pour traduire en C#, éviter au max d'utiliser inutilement la librairie spécifique Microsoft.VisualBasicEnvoyé par karami
![]()
Re,
je suis un peu perdu làTu as pris quoi comme code f_alibi alors?
Car le code de Karimi lui aussi génère une exception, sauf qu'il nécrit pas le try catch. En plus c'est beaucoup plus couteux en performance la gestion des erreurs façon VB6 (on error ...)
Partager