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

VB.NET Discussion :

[VB.NET] Comment supprimer un fichier en lecture seule ?


Sujet :

VB.NET

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 79
    Points
    79
    Par défaut [VB.NET] Comment supprimer un fichier en lecture seule ?
    bonjour,

    Je souhaite simplement supprimer un fichier en lecture seule. Apparemment, je n'ai pas le droit par code de supprimer un fichier en lecture seule. Est-ce possible de changer l'attribut du fichier par code, puis de supprimer celui-ci ?

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    En utilisant la classe FileInfo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim fi as FileInfo = new FileInfo(@"X:\...\...\monfichier.ext");
    fi.IsReadOnly = false;
    fi.Delete();
    Je ne fais pas de VB.Net mais la syntaxe devrait être bonne. Il faut évidemment gérer les exceptions sur le Delete() même si je ne l'ai pas fait

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 79
    Points
    79
    Par défaut
    salut,

    Je n'ai pas de propriété isReadonly.

    Voici le code que j'ai actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' test si le fichier est en lecture seule
    Dim f As New FileInfo(sFichierASupprimer)
    If Not (f.Attributes.ReadOnly = FileAttributes.ReadOnly) Then : f.Delete()
    Else :  ' Faut que j'en lève la lecture seule
    EndIf
    f = Nothing

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut

    f.Attribute est un champ de bits. Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim f As New FileInfo("")
    If (f.Attributes And FileAttributes.ReadOnly) = 0 Then
      f.Delete()
    Else
        f.Attributes = f.Attributes And Not FileAttributes.ReadOnly
    End If


  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 79
    Points
    79
    Par défaut
    Bon ca marche !


    Je t'avoue que je ne comprend pas les lignes de code


    Où sont les tags résolus svp ?

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par abelman
    f.Attribute est un champ de bits. Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim f As New FileInfo("")
    If (f.Attributes And FileAttributes.ReadOnly) = 0 Then
    f.Delete()
    Else
    f.Attributes = f.Attributes And Not FileAttributes.ReadOnly
    End If

    Si le but poursuivi est de supprimer le fichier quelquesoit son état, je préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim f As New FileInfo("blablabla")
    If Not((f.Attributes And FileAttributes.ReadOnly) = 0) Then
       f.Attributes = f.Attributes And Not FileAttributes.ReadOnly
    End If
    f.Delete()

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Points : 79
    Points
    79
    Par défaut
    oui, c'est ce que j'ai fait en fait ^^

  8. #8
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 4
    Points
    4
    Par défaut Petite solution simple
    Salut, bon ce topic à quelques années mais c'est pour ceux qui chercheraient encore :
    La fonction SetAttr permet de changer l'attribut d'un fichier

    SetAttr("CheminDuFichier", FileAttribute.Normal)


    Les membre de l'énumération FileAttribute sont :
    Normal ->Normal (par défaut).
    ReadOnly ->Lecture seule.
    Hidden -> Caché.
    System -> Fichier système.
    Volume -> Étiquette de volume.
    Directory -> Répertoire ou dossier.
    Archive -> Fichier modifié depuis la dernière sauvegarde.
    Alias -> Le fichier a un nom différent.

    Source : MSDN ;-)

    En espérant que ça servira à quelqu'un.


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

Discussions similaires

  1. [VB.NET] Comment supprimer un fichier qui est utilisé ?
    Par Toon94 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 13/06/2010, 12h59
  2. Réponses: 3
    Dernier message: 28/06/2007, 14h35
  3. Réponses: 4
    Dernier message: 19/07/2006, 12h29
  4. Comment supprimer des fichiers en nombre ?
    Par Didier L dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 25/01/2005, 16h01

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