Test sur un fichier

Résolu
sebo1100 Messages postés 35 Date d'inscription mercredi 28 juin 2006 Statut Membre Dernière intervention 9 août 2007 - 9 mai 2007 à 07:57
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 - 10 mai 2007 à 13:23
Bonjour,

j ai rien vu a ce sujet. je voudrais dès l'ouverture de mon application faire un test sur un fichier pour savoir si celui ci est en lecture seul.

Je sais pas comment m y prendre.

Merci d'avance.

7 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 mai 2007 à 09:49
SAlut,
Je ne sais pas si c'est pareil en .NET mais en VB6 il faut stocker le résultat du Msgbox.
Soit

Dim Toto As Integer
Toto = MsgBox("Le fichier config.cfg est en lecture seule, cela pourrait poser certain problème." & _
           vbCrLf & "Il est conseillé de laisser l'accèes à l'enregistrement de ce fichier" & _
           vbCrLf & "Voulez effectuer la modification ?", MsgBoxStyle.YesNo, "Modifier le fichier config.cfg ?")

If Toto = MsgBoxResult.Yes Then , ----
[code.aspx?ID=41455 By Renfield]
Mais la encore je ne suis pas sur de ce que j'avance car je ne connais pas les subtilité de .NET mais tu devrais pouvoir adapter

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 mai 2007 à 08:09
Salut,
Regarde dans les Attributs du fichier.

@+: Ju£i?n
Pensez: Réponse acceptée
0
sebo1100 Messages postés 35 Date d'inscription mercredi 28 juin 2006 Statut Membre Dernière intervention 9 août 2007
9 mai 2007 à 09:02
j ai regardé donc les attributs et j ai trouvé une source sur le sujet.

J'en arrive a ce bout de code mais quand je le lance au démarrage de mon apply. il y a rien, j ai pourtant mis le fichier en lecture seul pour voir le bon fonctionnement de ce bout de code.

    Private Sub TestConfigCfg()
        Dim Attributes As String
        Attributes = File.GetAttributes(CheminSource & "cfg/config.cfg")
        If Attributes = 1 And Not Attributes > 1 Then
            MsgBox("Lecture seule")
        End If
    End Sub
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 mai 2007 à 09:14
Salut,
Que vaut Attributes (voir avec des msgbox) lorsque le fichier n'est pas en lecture et lorsque qu'il l'est?

Si c'est comme en VB6, il faut faire des masques pour resortir tout les attributs.
Exemple j'ai un fichier sans ReadOnly.
la fonction me retourne 32 (vbArchive)

Si je le place en lecture seule,
la fonction me retourne 33 = 32 ( vbArchive) + 1 ( vbReadOnly)
Donc peu être devrais tu essayer de modifier ton IF du style

Private Sub TestConfigCfg()
   Dim Attributes As Integer
   ' EN .NET Attributes = File.GetAttributes(CheminSource & "cfg/config.cfg")
   'En vb6
   Attributes = GetAttr("C:\Toto.txt")
   If (Attributes And vbReadOnly) = 1 Then
       MsgBox ("Lecture seule")
   End If
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0

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

Posez votre question
sebo1100 Messages postés 35 Date d'inscription mercredi 28 juin 2006 Statut Membre Dernière intervention 9 août 2007
9 mai 2007 à 09:40
ca marche bien la

donc j'ai modifié encore le code pour proposer de modifier le fichier.

    Private Sub TestConfigCfg()
        Dim Attributes As String
        Attributes = File.GetAttributes(CheminSource & "cfg/config.cfg")
        If (Attributes And vbReadOnly) = 1 Then
            MsgBox("Le fichier config.cfg est en lecture seule, cela pourrait poser certain problème." & _
            vbCrLf & "Il est conseillé de laisser l'accèes à l'enregistrement de ce fichier" & _
            vbCrLf & "Voulez effectuer la modification ?", MsgBoxStyle.YesNo, "Modifier le fichier config.cfg ?")
            If MsgBoxResult.Yes Then
                SetAttributes(CheminSource & "cfg/config.cfg")
            Else
                Me.close()
            End If
        End If
    End Sub

    Private Sub SetAttributes(ByVal Fichier As String)
        Dim Attributes As Integer = 0
        Attributes = Attributes + 32
        File.SetAttributes(Fichier, Attributes)
    End Sub

Mais quelque soit le resultat de la msgbox le fichier est modifié.
0
sebo1100 Messages postés 35 Date d'inscription mercredi 28 juin 2006 Statut Membre Dernière intervention 9 août 2007
9 mai 2007 à 09:52
Merci beaucoup ca marche au poil.
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
10 mai 2007 à 13:23
En VB6, il ne faut pas obligatoirement stocker la valeur du bouton dans une variable.

If (Msgbox ("Blablabla", vbInformation + vbYesNo) = vbYes) then
    .....
End if






Christophe
0