Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung

...powered by haas.homelinux.net...

Einstieg in VB.NET von René Martin
- Für Programmiereinsteiger -
Einstieg in VB.NET
gp Kapitel 5 Dateizugriff
  gp 5.1 Prüfen, ob eine Datei vorhanden ist
  gp 5.2 Textdateien lesen und schreiben
  gp 5.3 Der OpenFileDialog
  gp 5.4 DriveListBox, DirListBox und FileListBox
  gp 5.5 Fehler
  gp 5.6 Bitte warten Sie ...
  gp 5.7 Zusammenfassung

Kapitel 5 Dateizugriff

Das Problem, das sich beim Beispiel aus dem vorhergehenden Kapitel stellt, ist der Dateizugriff: Was passiert, wenn die Excel-Datei gar nicht existiert? Man kann den Benutzer fragen, wo er sie speichern möchte, aber wie »merkt« sich das Programm den Pfad? Dies kann in eine Datei geschrieben werden, die auf der Festplatte gespeichert wird, aber: In welchem Ordner wird sie gespeichert? Lösungen für diese Fragen werden im folgenden Kapitel beschrieben.

Wir nennen die Datei »info.txt«. Der Name ist beliebig. In dieser Datei wird der Pfad abgelegt, den der Benutzer angibt, falls die Excel-Mappe nicht existiert. Doch: Wo soll diese Datei gespeichert werden? Möglicherweise existiert nicht auf jedem Rechner der gleiche Ordner (beispielsweise »C:\Eigene Dateien«). Man könnte einen neuen Ordner anlegen – aber auch das erscheint problematisch, da dann der Benutzer möglicherweise diesen Ordner löscht oder umbenennt.


Galileo Computing

5.1 Prüfen, ob eine Datei vorhanden ist  toptop

Besser erscheint folgende Lösung: Die Datei »info.txt« wird in dem Ordner gespeichert, in dem sich das Betriebssystem befindet. Und wo liegt es? Hier hilft der Befehl:

System.Environment.SystemDirectory.ToString

Der erste Teil (System.Environment.SystemDirectory) liefert das Verzeichnis, in dem sich Windows befindet, die Methode ToString wandelt es in eine Zeichenkette um, die ausgegeben werden kann. Am besten wird diese Pfadangabe in einer Variablen gespeichert:

Dim strWinVerz As String
strWinVerz = System.Environment.SystemDirectory.ToString

Einige wichtige Eigenschaften von System.Environment finden Sie in der folgenden Tabelle:

Tabelle 5.1   Einige wichtige Eigenschaften von System.Environment
Eigenschaft Beschreibung
CurrentDirectory der Pfad des aktuellen Verzeichnisses
SystemDirectory der Pfad des Systemverzeichnisses
MachineName der NEetBIOS-Name des Computers
OSVersion die Nummer des Betriebssystems
TickCount die Anzahl der Millisekunden, die seit dem Systemstart verstrichen sind
Version die Version der CLR
UserName der Benutzername
UserInteractive gibt zurück, ob der aktuelle Prozess interaktiv ausgeführt wird
UserDomainName der Netzwerkdomänenname
NewLine neue Zeile (entspricht vbCr)

Abbildung

Abbildung 5.1   Einige Systeminfos

Nun, nachdem der Pfad ausfindig gemacht wurde, kann der Dateiname angehängt werden. Zu Beginn wird gesetzt:

Const DATEINAME As String = "info.txt"

Der komplette Dateiname lautet:

strWinVerz & "\" & DATEINAME

Nun wird überprüft, ob es diese Datei gibt. Dies leistete in Visual Basic der Befehl Dir, mit dem hier auch noch gearbeitet werden kann. VB.NET stellt die Methode System.IO.File.Exists zur Verfügung. Sie verlangt einen Dateinamen und gibt »True« oder »False« zurück. Also wird geprüft:

If System.IO.File.Exists(strWinVerz & "\" & DATEINAME) = _
False Then

Mit der Klasse File kann natürlich einiges »angestellt« werden – die meisten der folgenden Befehle sind sicherlich bekannt:

Tabelle 5.2   Einige Methoden der Klasse System.IO.File
Methode Beschreibung
Create erstellt eine Datei
Delete löscht eine Datei
Move verschiebt eine Datei
Exists überprüft, ob eine Datei vorhanden ist
GetAttributes gibt die Attribute zurück
GetCreateionTime das Erstelldatum
GetLastAccessTime letzter Zugriff
GetLastWriteTime geändert am
SetAttributes setzt die Attribute
SetCreateionTime legt das Erstelldatum fest
SetLastAccessTime legt den letzten Zugriff fest
SetLastWriteTime legt fest, wann die Datei geändert wurde

  

VB.NET

Einstieg in ASP.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML