![]() |
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
|
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (8,9 kB)
|
Downloads bisher: [ 1291 ]
|
|
|