Sympa74
Messages postés85Date d'inscriptionlundi 25 septembre 2006StatutMembreDernière intervention18 décembre 2008
-
1 mars 2008 à 11:44
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
1 mars 2008 à 15:44
Bonjour à tous,
Bien évidemment, j'ai déjà cherché sur le forum, mais je n'ai pas vraiment trouvé ce que je cherche, donc voici mon problème.
J'ai un fichier qui va être utilisé par 2 ordis (reliés en réseau).
Lorsque l'ordi 1 lance une procédure faisant appel à ce fichier, il doit vérifier au préalable que le fichier n'est pas utilisé par l'autre ordi.
J'ai donc pensé à faire cela :
Dim fi As FileInfo
fi = New FileInfo(fichierAtraiter)
While fi.Attributes = 1
' tant que le fichier est utilisé par une autre procédure...
' (en fait un autre ordi connecté sur le meme fichier)
TextBox1.Text = "Le fichier est en cours d'utilisation"
End While
' dès que le fichier est libéré... la procédure peut se poursuivre
TextBox1.Text = "Le fichier est à présent disponible"
mais à priori, cela ne fonctionne pas du tout... qu'elle que soit la condition du fichier (true ou false), aucun des 2 messages ne s'affiche... je pense que c'est un problème lié à cette boucle car si je fais le test manuellement, (via un bouton par exemple, comme ci-après), cela fonctionne très bien...
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim fi As FileInfo
fi = New FileInfo(fichierAtraiter)
If fi.Attributes = 128 Then
TextBox1.Text = "Le fichier est disponible"
End If
If fi.Attributes = 1 Then
TextBox1.Text = "Le fichier est en cours d'utilisation"
End If
End Sub
Si une "âme charitable" voulait bien me donner un tuyau (non percé de préférence) alors, je vous en remercie par avance.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 mars 2008 à 12:04
salut,
en remplaçant TextBox1.Text = par debug.print , çà donne quelquechose? (simple pb d'affichage...)
dans quel évènement utilises-tu ton code?
++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Sympa74
Messages postés85Date d'inscriptionlundi 25 septembre 2006StatutMembreDernière intervention18 décembre 20081 1 mars 2008 à 15:21
hello,
remplacer TextBox1.Text = par debug.print, ne change absolument rien au problème.
Cette procédure est utilisée dans le cadre de l'écriture dans un fichier...
J'enregistre des infos dans un fichier .txt, enregistrement déclenché par un click sur bouton, mais avant d'ouvrir le fichier et y écrire des infos... il faut vérifier que l'autre ordi n'est pas lui-même entrain d'écrire quelque chose dans le même fichier.
voila pour la précision... merci pour l'aide des pros qui parcourent régulièrement ce forum...
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 mars 2008 à 15:44
ton problème est bien énoncé, je demandais le remplacement au cas où çà serait un problème d'affichage de la TB puisque le code est le même, mis à part juste une boucle.... (dans laquelle d'ailleurs tu devrais ajouter application.doevents pour ne pas crasher ton appli)
peux-tu essayer avec un timer (genre tous les 500ms), pour relever chaque retour de fi.Attributes
(au càs où çà ne serait ni 1 ni 128...)
ps : je ne fais pas de dotnet
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp