Lire un fichier déjá ouvert (IMPOSSIBLE?)

Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007 - 19 avril 2007 à 20:06
Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007 - 7 mai 2007 à 14:26
Bonjour,

Lorque j'essaie d'oucrir un stream pour lire un fichier déjá ouvert par un autre programme
une erreur se produit!

Dim sr As IO.StreamReader = New IO.StreamReader(NomFichier)   '-> erreur

avec cette instruction c'est pareil
Dim s2 As New FileStream(NomFichier, FileMode.Open, FileAccess.Read, FileShare.Read)

Pourtant, si je clique deux fois sur le fichier avec l'explorateur windows j'arrive a lire ce qui y est ecrit! 

Est-ce que qq peut m'aider SVP?
J'ai déjá chercher partout mais sans reponse

11 réponses

PurBonheur Messages postés 66 Date d'inscription samedi 24 février 2007 Statut Membre Dernière intervention 7 octobre 2007 1
19 avril 2007 à 21:36
Salut,
"Dim sr As IO.StreamReader = New IO.StreamReader(NomFichier)   '-> erreur"

et si tu nous disais quelle erreur cela te donne ?

moi je fait :
        Dim sr As IO.StreamReader = New IO.StreamReader("D:\Mes Documents\Fichier.txt")
        Dim chaine As String

        Chaine = sr.ReadLine
        sr.Close()
        MsgBox(chaine)

Et ca marche très bien.

A plus.
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
20 avril 2007 à 00:05
Salut

Je fait exactement comme PurBonheur et pas de probleme ?
quand tu mets un message dans un forum pour dire que tu as un erreur c'est bien beau, mais le plus parlant c'est l'erreur elle meme :)

Sinon une autre piste pourrais peut etre te metre sur la voir en utilisant un Try non ?

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0
Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007
20 avril 2007 à 14:11
Merci pour votre attention.

l'erreur indiqué est que le fichier est déjá ouvert par un autre programme.
En anglais ça donne
"The process cannot access the file because it is being used by another process "

A cause du mode d'ouverture en exclusivité je crois.

Or, j'arrive a ouvrir et a lire un tel fichier a partir de l'explorateur de windows.

Je voudrais donc connaitre
le moyen de lire un fichier ouvert en mode exclusif
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
26 avril 2007 à 09:54
Oups dsl j'etait pas la :)

Tu peux donner tout ton code histoire de voir ce qu'il cloche !

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0

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

Posez votre question
Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007
26 avril 2007 à 18:11
    Private Sub Test()
        Try
            Dim Fdg As New OpenFileDialog
            If Fdg.ShowDialog = DialogResult.OK Then
                Dim Fic As String
                Fic = Fdg.FileName




                'Erreur ici
                Dim sr As IO.StreamReader = New IO.StreamReader(Fic)


  ' Ou...


                'Erreur ici
                Dim s2 As New IO.FileStream(Fic, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)




            End If
            Fdg.Dispose()


        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


    End Sub

essaie d'ouvrir un fichier mdb avec Access, puis de l'ouvrir en mode binaire
ou encore de lire le fichier correspendant ldb puis de l'ouvrir en mode texte

Merci
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
29 avril 2007 à 10:32
donc ce que tu recherche a faire c'est d'ouvrir un fichier Access en un mode d'exclusion acces (IO.FileAccess.Read)! je crois que c'est assez particulier a faire mais j'en suis pas sur !

Normalement pour ouvrir une base Access il faut avoir un client de connexion un peux comme SQL en bref il te faut un connecteur !
Je pense (mais je peu me trompé) que pour ouvrir une base mdb faudrai la lire en Bytes avant de la lire en binaire non ?

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0
Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007
2 mai 2007 à 13:54
Non je ne veux pas me connecter a une base de donnée.
Je voudrais simplement la lire en byte (ou binaire) pour pouvoir la copier (avec une fonction spéciale qui montre un progressbar etc...).

Pour l'autre exemple que j'ai cité (fichier .ldb qui aparait quand une base de donnée access a été ouverte), je voudrais le lire en mode texte pour pouvoir savoir qui y est connecté.

Mais de maniere general je ne trouve pas le moyen de lire un fichier ouvert en mode exclusif.

Je pourrais conclure que puisque le fichier est ouvert en mode exclusif, c'est impossible.
Cependant, a partir de l'explorateur de windows, je peux copier ce fichier ou le lire en faisant un doubleclick.
0
jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012
5 mai 2007 à 23:06
En général, system.IO te sort cette erreur lorsque tu fermes le fichier alors qu'il est utilisé par un autre programme. En tout cas, c'était mon problème.

-Jn-
0
Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007
6 mai 2007 à 11:59
"C'était ton probléme" ?

Ça veut dire que t'a trouvé une solution?
0
jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 novembre 2012
6 mai 2007 à 15:44
Oui, je fais le SR.closes() et le FS.close() - streamReader et FileStream - à la fermeture de mon formulaire, et je place ces deux commandes dans un try catch. Si l'opération echoue, et bien j'envoi un message à l'utilisateur comme quoi je ne peux fermer son fichier

-Jn-
0
Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007
7 mai 2007 à 14:26
Merci.

Si qq connait le moyen de forcer la lecture d'un fichier déjà ouvert par un programme, je suis preneur.
0
Rejoignez-nous