IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Problème de partage d'un fichier situé sur un NAS


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Par défaut Problème de partage d'un fichier situé sur un NAS
    J'ai le très curieux problème suivant:
    • J’ai 2 PC qu’on appellera PC1 (un portable) et PC2 (un desktop).
    • Ces 2 PC accèdent (en écriture et lecture) à un fichier texte (lignes terminées par CRLF) situé sur un serveur NAS par le biais d’un logiciel maison qu’on appellera MonLogiciel. Lequel logiciel est installé sur les 2 PC bien sûr.

    Voilà ce que je constate :
    1 – Je travaille sur le PC1 (PC2 est éteint) et j’accède en écriture par MonLogiciel au fichier sur le NAS.
    2 – J’éteins PC1, puis j’allume PC2.
    3 – Depuis PC2, je tente de lire le fichier sur le NAS par MonLogiciel... Message d’erreur « Le processus ne peut pas accéder au fichier car il est utilisé par un autre processus. »*!
    Précision*: le fichier texte est pourtant parfaitement lisible si on l’ouvre depuis l’explorateur de fichiers Windows… Il semble donc libre*!
    4 – J’attends environ 15 minutes… et tout à coup le fichier redevient accessible et s’ouvre dans mon MonLogiciel sur PC2.
    5 – Je travaille sur le PC2 (PC1 est toujours éteint) et j’accède en écriture avec MonLogiciel au fichier sur le NAS.
    6 – J’éteins PC2, puis je rallume PC1.
    7 – Depuis PC1, je tente de lire le fichier sur le NAS avec MonLogiciel… et là ça marche sans erreur*!!!
    Si je réitère les mêmes opérations (1 à 7), le phénomène se répétera*: on «*gagne*» à tous les coups*!
    Pour nous résumer, l’erreur surgit quand on va de PC1 vers PC2, mais aucune erreur quand on va de PC2 vers PC1.
    Les 2 PC sont sous Windows 11. Le NAS est un Synology DS720+.

    Que pensez vous, SVP, de ce problème qui me laisse dubitatif ?

    Ci-dessous, mes procédures d’écriture et lecture du fichier texte.
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    '-------------------------------------------------------
    'Procédure de lecture.
    'Lecture vers une table(), TableJnl.
    '-------------------------------------------------------
       Shared Function OuvreJournal(ByRef TableJnl() As String, ByVal Fichier As String) As Integer
             Dim Index As Integer
    
            If FileSystem.FileExists(Fichier) Then
                Try
                    '(Re)Initialise le tableau.
                    Array.Clear(TableJnl, 0, NbItems_MAX_JOURNAL)
    
                    '-------------------------------------------------
                    'Lecture et mémorisation du Journal.
                    '-------------------------------------------------
                    Index = 0
                    Dim fs As FileStream = Nothing
    
                     fs = New FileStream(Fichier, FileMode.Open)
                     Using fsreader As StreamReader = New StreamReader(fs, System.Text.Encoding.UTF8)
                        Do Until fsreader.Peek = -1
                            TableJnl(Index) = fsreader.ReadLine
                            Index += 1
                        Loop
                    End Using
    
                    If fs IsNot Nothing Then
                        fs.Dispose()
                        fs.Close()
                    End If
    
                Catch ex As Exception
                    MessageBoxPerso(ex.Message & "Erreur de lecture du Journal.", "Erreur" & " E012", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, True)
                    Return -1
                End Try
            Else
                Return -2
            End If
    
            'Lecture correcte, mais...
            If TableJnl(0) Is Nothing Then
                Return -3
            Else
                Return 0
            End If
        End Function
    
    '-------------------------------------------------------
    'Procédure d'écriture.
    'Conforme aux recommandations Microsoft.
    '-------------------------------------------------------
       Shared Function SaveJournal(ByVal NomFic As String) As Boolean
            Dim Index As Integer
    
            Try
                Index = 0
                Dim fs As FileStream = Nothing
    
                fs = New FileStream(NomFic, FileMode.Create)
                Using writer As StreamWriter = New StreamWriter(fs, System.Text.Encoding.UTF8, , False)
                    Do While TableJournal(Index) <> Nothing
                        writer.WriteLine(TableJournal(Index))
                        Index += 1
                    Loop
                End Using
    
                If fs IsNot Nothing Then
                    fs.Dispose()
                    fs.Close()
                End If
    
            Catch ex As Exception
                MessageBoxPerso(ex.Message & " Erreur écriture Journal.", "Erreur" & " E009", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, True)
                Return False
            End Try
            Return True
        End Function

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut je n'ai pas fais de VB depuis un certain temps d'après ton code tu rentre dans ton try catch a tu essayé de setter la présence de "FS" et si c'est le cas de procéder à la fermeture "Dispose et Close"?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Q: Copier un fichier situé sur le serveur en le faisant glisser ?
    Par polothentik dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/05/2008, 16h30
  2. Partage d'un fichier adp sur un réseau
    Par alain.nico dans le forum Access
    Réponses: 3
    Dernier message: 13/09/2007, 09h10
  3. impression d'un fichier situé sur le serveur
    Par Phiss dans le forum ASP
    Réponses: 6
    Dernier message: 21/06/2007, 14h48
  4. Acces a des fichiers situes sur une autre machine
    Par vsevel dans le forum Glassfish et Payara
    Réponses: 2
    Dernier message: 19/06/2007, 17h23
  5. Réponses: 2
    Dernier message: 31/07/2006, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo