Tipp 0004 Dateiattribute lesen und setzen
Autor/Einsender:
Datum:
  Michael Werner
14.01.2003
Entwicklungsumgebung:   VB.Net 2002
Framework:   1.0
Mit Hilfe der Klasse System.IO.FileInfo und der Enumeration FileAttribute() können die Attribute einer Datei ausgelesen und auch gesetzt werden. In der Klasse FileInfo des Namespaces System.IO verfügt die FileAttributes-Enumeration über ein FlagsAttribute-Attribut, das die bitweise Kombination der Memberwerte zulässt.
 
Imports System.IO
Imports System.IO.FileSystemInfo
 
Public Class Form1
  Inherits System.Windows.Forms.Form
Vom Windows Form Designer generierter Code
  Private Sub Form1_Load(ByVal sender As System.Object, _
         ByVal e As System.EventArgs) Handles MyBase.Load
    AddHandler CheckBox1.Click, AddressOf Me.Geklickt
    AddHandler CheckBox2.Click, AddressOf Me.Geklickt
    AddHandler CheckBox3.Click, AddressOf Me.Geklickt
    AddHandler CheckBox4.Click, AddressOf Me.Geklickt
 
    Label1.Text = "ACHTUNG! Jede Änderung wird sofort aktualisiert!"
  End Sub
 
  Private Sub CheckAttribute(ByVal sPath As String)
    Dim fi As New System.IO.FileInfo(sPath)
    Dim fa As New FileAttribute()
 
    If fi.Attributes = (fi.Attributes Or fa.ReadOnly) Then
      CheckBox1.Checked = True
    Else
      CheckBox1.Checked = False
    End If
    If fi.Attributes = (fi.Attributes Or fa.Hidden) Then
      CheckBox2.Checked = True
    Else
      CheckBox2.Checked = False
    End If
    If fi.Attributes = (fi.Attributes Or fa.System) Then
      CheckBox3.Checked = True
    Else
      CheckBox3.Checked = False
    End If
    If fi.Attributes = (fi.Attributes Or fa.Archive) Then
      CheckBox4.Checked = True
    Else
      CheckBox4.Checked = False
    End If
  End Sub
 
  Sub Geklickt(ByVal Checkbox As Object, ByVal KeyArgs As EventArgs)
    Dim fi As System.IO.FileInfo
 
    Try
      fi = New System.IO.FileInfo(TextBox1.Text)
    Catch
      MsgBox("Wählen Sie zunächst eine Datei!", _
             MsgBoxStyle.Information)
      Exit Sub
    End Try
 
    Dim fa As New FileAttribute()
    Dim s As String
    Dim r As Integer
 
    Select Case Checkbox.Name
      Case "CheckBox1"
        If CheckBox1.Checked Then
          fi.Attributes = fi.Attributes Xor fa.ReadOnly
          s = "Readonly wurde gesetzt."
        Else
          fi.Attributes = fi.Attributes - fa.ReadOnly
          s = "Readonly wurde aufgehoben."
        End If
 
      Case "CheckBox2"
        If CheckBox2.Checked Then
          r = MsgBox("Achtung! Sind sie sicher, die Datei auf " & _
                "Versteckt setzen zu wollen?" & vbNewLine & _
                "Je nach Systemeinstellungen könnte Ihre " & _
                "Datei nicht mehr sichtbar sein!", _
                MsgBoxStyle.YesNoCancel + MsgBoxStyle.Exclamation, _
                "Wirklich?")
          If r <> vbYes Then
            CheckBox2.Checked = False
            Exit Sub
          End If
          fi.Attributes = fi.Attributes Xor fa.Hidden
          s = "Hidden wurde gesetzt."
        Else
          fi.Attributes = fi.Attributes - fa.Hidden
          s = "Hidden wurde aufgehoben."
        End If
 
      Case "CheckBox3"
        If CheckBox3.Checked Then
          r = MsgBox("Achtung! Sind sie sicher, die Datei auf " & _
                "System setzen zu wollen?" & vbNewLine & _
                "Je nach Systemeinstellungen könnte Ihre " & _
                "Datei nicht mehr sichtbar sein!", _
                MsgBoxStyle.YesNoCancel + MsgBoxStyle.Exclamation, _
                "Wirklich?")
          If r <> vbYes Then
            CheckBox3.Checked = False
            Exit Sub
          End If
          fi.Attributes = fi.Attributes Xor fa.System
          s = "System wurde gesetzt."
        Else
          fi.Attributes = fi.Attributes - fa.System
          s = "System wurde aufgehoben."
        End If
 
      Case "CheckBox4"
        If CheckBox4.Checked Then
          fi.Attributes = fi.Attributes Xor fa.Archive
          s = "Archive wurde gesetzt."
        Else
          fi.Attributes = fi.Attributes - fa.Archive
          s = "Archive wurde aufgehoben."
        End If
    End Select
 
    StatusBar1.Text = s
  End Sub
 
  Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
 
    With OpenFileDialog1
      .InitialDirectory = "c:\"
      .Filter = "Alle Dateien (*.*)|*.*"
      .RestoreDirectory = True
 
      If .ShowDialog() = DialogResult.OK Then
        TextBox1.Text = .FileName
        CheckAttribute(TextBox1.Text)
      End If
    End With
  End Sub
 
  Private Sub Button3_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button3.Click
    Me.Close()
  End Sub
End Class
 
Weitere Links zum Thema
Dateien eines Ordners auflisten

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (8,9 kB) Downloads bisher: [ 1294 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 21. Jamuar 2012