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

Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
- - Dernière réponse : 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
Afficher la suite 

11 réponses

Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007
0
Merci
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.
Commenter la réponse de PurBonheur
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
1
0
Merci
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
Commenter la réponse de troxsa
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
0
Merci
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
Commenter la réponse de Silmon
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
1
0
Merci
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
Commenter la réponse de troxsa
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
0
Merci
    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
Commenter la réponse de Silmon
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
1
0
Merci
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
Commenter la réponse de troxsa
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
0
Merci
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.
Commenter la réponse de Silmon
Messages postés
265
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
13 novembre 2012
0
Merci
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-
Commenter la réponse de jnbrunet
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
0
Merci
"C'était ton probléme" ?

Ça veut dire que t'a trouvé une solution?
Commenter la réponse de Silmon
Messages postés
265
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
13 novembre 2012
0
Merci
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-
Commenter la réponse de jnbrunet
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
0
Merci
Merci.

Si qq connait le moyen de forcer la lecture d'un fichier déjà ouvert par un programme, je suis preneur.
Commenter la réponse de Silmon