IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Visual Basic - Fortgeschrittene Techniken mit den FSO (VB)



Fortgeschrittene Techniken mit den FSO (VB)

Dieser zweite Teil der FSO-Artikelreihe zeigt Ihnen den Umgang mit den Objekten Drive (Laufwerk) und TextStream (Textdatei). Außerdem wird auf Systemverzeichnisse und temporäre Dateinamen eingegangen.


Autor: Tobias Surmann (incsoft)
Datum: 10-08-2003, 16:02:02
Referenzen: keine
Schwierigkeit: Profis
Ansichten: 20238x
Rating: 9.67 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Dies ist der zweite Teil einer Artikelreihe über die FSO-Programmierung mit Visual Basic. Falls Sie den ersten Teil noch nicht gelesen haben, empfehle ich Ihnen vor der Lektüre dieses Artikels einen Blick in den ersten Teil "Einführung in die Arbeit mit den FSO" zu werfen. Dort werden Grundlagen, wie zum Beispiel der Aufbau der FSO, Einfügen der FSO in die Entwicklungsumgebung und die Bereitstellung eines globalen FSO-Objekts behandelt, die für das Verständnis und das Nachvollziehen dieses Artikels am Computer erforderlich sind. Dieser Artikel gliedert sich in drei große Abschnitte. Ein grober Überblick über die anstehenden Themen:
  1. Laufwerke (Drive)
  2. Textdatei (TextStream)
  3. Systemverzeichnisse und temporäre Dateien
Los geht's.

Laufwerke

Das Drive-Objekt bietet dem Programmierer Zugriff auf Informationen über Laufwerkart, belegten und freien Speicherplatz und weiteren interessanten Funktionen und Eigenschaften.

Existenz eines Laufwerks prüfen

Die Methode DriveExists wird direkt vom übergeordneten FSO-Objekt angeboten. Sie erwartet lediglich den Laufwerksbuchstaben mit einem angehängten Doppelpunkt (als String) des auf Existenz zu überprüfenden Laufwerks. Als Ergebnis gibt die Funktion einen booleschen Wert zurück; True, wenn das Laufwerk existiert, False, wenn nicht.

'Existiert das Laufwerk F:?
Dim bEx As Boolean
bEx = FSO.DriveExists("F:")

If bEx Then
	MsgBox "Das Laufwerk existiert."
Else
	MsgBox "Das Laufwerk existiert nicht."
End If
Das Drive-Objekt

Dieser Abschnitt zeigt, wie Sie ein Drive-Objekt erzeugen und diesem ein bestimmtes Laufwerk zuweisen. Wird ein gültiges Drive-Objekt zurückgegeben, können Sie über die Eigenschaften und Methoden des Objekts Informationen über das Laufwerk herausfinden oder selbst Werte setzen.

'Drive-Objekt erzeugen
Dim d As Drive
Set d = FSO.GetDrive("C:")

'Prüfen, ob das Objekt gültig ist
If d Is Nothing Then
	MsgBox "Fehler! Drive-Objekt ist ungültig!"
Else
	MsgBox "Es wurde ein gültiges Drive-Objekt erzeugt."
End If
Ein Fehler könnte zum Beispiel auftreten, wenn das als String an GetDrive übergebene Laufwerk nicht vorhanden ist.

Liste aller verfügbaren Laufwerke

Da wir nun in der Lage sind, ein Drive-Objekt zu erzeugen und ihm einen gültigen Verweis auf ein Laufwerk zuzuweisen, haben wir nun verschiedene Möglichkeiten die in diesem Objekt enthaltenen Informationen zu nutzen. Da d ein Objekt ist, können wir es in Verbindung mit einer For … Each-Schleife nutzen, um heraus zu finden, welche Laufwerke das System zur Verfügung stellt.

'Alle verfügbaren Laufwerke auflisten
Dim d As Drive
For Each d In FSO.Drives
	lstLaufwerke.AddItem d
Next
Über die Auflistung Drives des FSO-Objekts können wir alle verfügbaren Laufwerke ermitteln.

Anzahl der Laufwerke ermitteln

Die Anzahl der verfügbaren Laufwerke zu ermitteln ist nun auch kein Problem mehr. Dies geschieht über die Count-Eigenschaft von Drives.

'Anzahl der Laufwerke im System

MsgBox "Anzahl: " & CStr(FSO.Drives.Count)
Testen, ob ein Laufwerk bereit ist

Bei Laufwerken mit Wechselmedien kann es vorkommen, dass gerade kein Medium eingelegt ist. Wenn Sie dann auf bestimmte Eigenschaften des Objekts zugreifen wird ein Fehler ausgelöst. Um dies zu verhindern, können Sie mit der Eigenschaft IsReady testen, ob das Laufwerk bereit ist, d.h. herausfinden, ob ein Datenträger eingelegt ist.

'Ist D: bereit?
Dim d As Drive

Set d = FSO.GetDrive("D:")

If d.IsReady Then
	MsgBox "Das Laufwerk ist bereit!"
Else
	MsgBox "Bitte legen Sie einen Datenträger ein!"
End If
Umrechnen von Byte in Kilo-, Mega-, Giga- und TeraByte

Mit dem Drive-Objekt kann man den freien, belegten und den insgesamt zur Verfügung stehenden Speicherplatz auf einem Datenträger bzw. eines Laufwerks ermitteln. Diese Werte werden immer in Byte zurückgegeben. Um eine bessere Lesbarkeit des Wertes zu gewährleisten, sollte man die Byteangabe in entsprechende gängige Maßeinheiten umrechnen. Der folgende Code zeigt wie das geht (von Byte bis TeraByte). Peta- und ExaByte werden nicht berücksichtigt, da diese Größen nur selten benötigt werden.

Public Function ByteToString(dblSize As Double) As String

 Dim strTemp As String

 If dblSize >= 1024 Then
    
	dblSize = dblSize \ 1024
	strTemp = CStr(dblSize) & " KB"
        
 If dblSize >= 1024 Then
        
	dblSize = dblSize \ 1024
	strTemp = CStr(dblSize) & " MB"
            
 If dblSize >= 1024 Then
	
	dblSize = dblSize \ 1024
	strTemp = CStr(dblSize) & " GB"

 If dblSize >= 1024 Then

	dblSize = dblSize \ 1024
	strTemp = CStr(dblSize) & " TB"

	End If

    End If

    End If
       
  Else
    
 	strTemp = CStr(dblSize) & " Byte"
        
  	End If
    
    ByteToString = strTemp

End Function
Wenn der an die Funktion übergebene Wert durch 1024 ganzzahlig teilbar ist, und das Ergebnis dieser Division größer oder gleich 1024 ist, so kann die nächst größere Einheit genommen werden, um den Wert formatiert darzustellen. Ein Beispiel:

'C:\test.dat hat eine Größe von 1308 Byte
'In den Code wird die Größe der Datei als Literal eingesetzt

Public Function ByteToString(1308) As String

	If 1308 >= 1024 Then  'Bedingung trifft zu

	  dblSize = 1308 \ 1024 'dblSize hat nun den Wert 1
	  strTemp = 1 & " KB" 'strTemp erhält den Wert "1 KB"

	If 1 >= 1024 Then 'Bedingung trifft nicht zu ' Abbruch

	  …

	End If

	End If

	ByteToString = "1 KB" 'Rückgabewert der Funktion

End Function
Die einzige Einschränkung, die diese Funktion besitzt ist, dass die Werte nicht auf mehrere Stellen gerundet werden. Der Vorteil daran ist, dass diese Funktion sehr schnell läuft, da eine ganzzahlige Division (mit \) sehr viel schneller als eine normale Division (mit /) durchgeführt werden kann. Wer auf die Nachkommastellen nicht verzichten kann, nimmt folgende Funktion.

Public Function ByteToString2(dblSize As Double, intDecimal As Integer) As String

	Dim strTemp As String

	If dblSize >= 1024 Then
    
	  dblSize = Round(dblSize / 1024, intDecimal)
	  strTemp = CStr(dblSize) & " KB"
        
	If dblSize >= 1024 Then
        
	  dblSize = Round(dblSize / 1024, intDecimal)
	  strTemp = CStr(dblSize) & " MB"
            
	If dblSize >= 1024 Then
	
	  dblSize = Round(dblSize / 1024, intDecimal)
	  strTemp = CStr(dblSize) & " GB"

	If dblSize >= 1024 Then

	  dblSize = Round(dblSize / 1024, intDecimal)
	  strTemp = CStr(dblSize) & " TB"

	  End If

	  End If

	  End If
       
	Else
    
	  strTemp = CStr(dblSize) & " Byte"
        
  	End If
    
	  ByteToString2 = strTemp

End Function
Somit wäre auch dieses Problem gelöst. Eine Anwendung der Funktionen wird im nächsten Abschnitt demonstriert.

Speicherplatz ermitteln

Das Drive-Objekt stellt uns zwei Eigenschaften zur Verfügung, um den freien und den gesamten Speicherplatz zu ermitteln. Subtrahiert man den freien vom gesamten Speicherplatz, so erhält man zusätzlich noch Informationen über den belegten Speicherplatz.

'd verweist auf ein gültiges Drive-Objekt
'Zuerst prüfen ob das Laufwerk auch bereit ist
If d.IsReady Then
	
  MsgBox "Gesamtkapazität: " & ByteToString2(d.TotalSize, 2) & vbCrLf &  _
  "Freier Speicherplatz: " & ByteToString2(d.AvailableSpace, 2) & vbCrLf & _
  "Belegter Speicherplatz: " & ByteToString2(d.TotalSize - d.AvailableSpace, 2)

Else

  MsgBox "Das Laufwerk ist nicht bereit. Bitte legen Sie einen Datenträger ein!"

End If
Hier wird die im letzten Abschnitt entwickelte Funktion ByteToString2 benutzt, um den Speicherplatz inklusive 2 Nachkommastellen anzuzeigen.

Laufwerkstyp

Über die Eigenschaft DriveType kann der Laufwerkstyp ermittelt werden. Es gibt insgesamt 6 verschiedene Arten. Die entsprechende Enumeration für diese Eigenschaft heißt Scripting.DriveTypeConstants.

Konstante
Wert
Beschreibung
UnknownType
0
Unbekannter Laufwerkstyp
Removable
1
Wechseldatenträger
Fixed
2
Festplatte
Remote
3
Netzlaufwerk
CDRom
4
CD-ROM oder DVD-ROM
RamDisk
5
RAM-Disk


Hier eine einfache Funktion mit der man den Laufwerkstyp im Klartext ermitteln kann.

'Laufwerkstyp als Text zurückgeben
Public Function GetDriveTypeDescription(d As Drive) As String

  Select Case d.DriveType

	Case UnknownType:

	  GetDriveTypeDescription = "Unbekannter Laufwerkstyp"

		Case Removable:

		  GetDriveTypeDescription = "Wechseldatenträger"

		Case Fixed:

		  GetDriveTypeDescription = "Festplatte"

		Case Remote:

		  GetDriveTypeDescription = "Netzlaufwerk"

		Case CDRom:

		  GetDriveTypeDescription = "CD-/DVD-ROM"

		Case RAMDisk:

		  GetDriveTypeDescription = "RAM-Disk"

	End Select

End Function
Ein Beispiel für den Aufruf der Funktion:

'd ist ein gültiges Drive-Objekt, das auf D:\ verweist
'Ist D:\ eine Festplatte?
Dim strType As String

strType = GetDriveType(d)

If strType = "Festplatte" Then

  MsgBox "D:\ ist eine Festplatte!"

Else

  MsgBox "D:\ ist keine Festplatte, sondern: " & strType & "!"

End If
Dateisystem ermitteln

Unter Windows ME hatte man noch keine Wahl, welches Dateisystem man verwenden wollte, denn es hatte definitiv das Dateisystem FAT32. Genauso war es mit Windows NT. Auch dieses Betriebssystem konnte nur mit dem Dateisystem NTFS arbeiten. Also eine gute Grundlage, um das Betriebssystem eines Computers mit den FSO zu ermitteln? Nicht ganz. Seit Windows XP kann der Anwender entscheiden, welches Dateisystem er verwenden möchte. Standardmäßig ist zwar immer noch FAT32 bei neu ausgelieferten PCs eingestellt, aber dies kann der Anwender selbst über eine Konvertierungsfunktion ändern.

Auch wenn das Betriebssystem noch nicht vom Hersteller/Verkäufer des PC-Systems installiert wurde, und der User sein Windows XP selbst installieren und konfigurieren muss, hat er die Wahl zwischen NTFS und FAT32-Dateisystem. Die Vor- und Nachteile der beiden Dateisysteme zu beleuchten würde den Rahmen dieses Artikels bei weitem sprengen. Allerdings kann ich Ihnen zeigen, wie Sie mit Hilfe der FSO das Dateisystem ermitteln. Welche Schlussfolgerungen Sie daraus ziehen bleibt Ihnen überlassen.

'd verweist auf ein gültiges Drive-Objekt
'Mit welchem Dateisystem arbeitet das Betriebssystem?
MsgBox d.FileSystem
Stammverzeichnis ermitteln
Das Drive-Objekt bietet gleich zwei Eigenschaften, die darauf schließen lassen, dass hierdurch das Stammverzeichnis als String zurückgegeben werden könnte. Tatsächlich tun dies auch beide Eigenschaften, wenngleich mit einem kleinen Unterschied. Während die Path-Eigenschaft immer das Stammverzeichnis ohne \ zurückgibt, wird der Backslash bei der Eigenschaft RootFolder immer angehängt. Somit verhält sich Path bei einem nicht-virtuellem Laufwerk immer wie die DriveLetter-Eigenschaft des Drive-Objekts. RootFolder hingegen weist sehr viel mehr Funktionalität auf als zunächst gedacht. Tatsächlich ist RootFolder ein eigenes Folder-Objekt und kann auch als solches eingesetzt werden.

'd ist ein gültiger Verweis auf das Laufwerk C:
'Stammverzeichnis ermitteln
MsgBox "Stammverzeichnis: " & d.RootFolder
Freigabenamen ermitteln

Bei Netzlaufwerken kann es interessant sein, den dazugehörigen Freigabenamen zu ermitteln, da dieser häufig nicht mit dem Originalnamen übereinstimmt.

'd ist ein gültiges Drive-Objekt
'Freigabenamen ermitteln
'funktioniert nur mit Netzlaufwerken
If d.DriveType = Remote Then
	MsgBox "Freigabename: " & d.ShareName
End If
Datenträgerbezeichnung und Seriennummer

Zum Schluss der Behandlung des Drive-Objekts möchte ich Ihnen noch zeigen, wie Sie die Bezeichnung eines Datenträgers auslesen. Ebenso wichtig (z. B. für eine Kopierschutzfunktion) ist die Seriennummer eines Datenträgers.

'd ist ein gültiges Drive-Objekt
'Datenträgerbezeichnung ermitteln
MsgBox "Bezeichnung: " & d.VolumeName

'Seriennummer
MsgBox "Seriennummer: " & d.SerialNumber
Beide Werte werden als String zurückgegeben (auch die Seriennummer!). Die beiden Eigenschaften funktionieren auch mit Netzlaufwerken.

Textdateien

Textdateien werden sehr häufig in Programmen benutzt, z. B. um Konfigurationen oder andere für die Ausführungsgeschwindigkeit des Programms nicht so relevanten Daten zu speichern (dann würde es besser sein, eine Datenbank zu benutzen). Zwar kann man Dateien auch mit VB öffnen, bearbeiten, Text hinein schreiben und lesen, allerdings ist das meistens nicht sehr komfortabel. Daher gibt es eine eigene Klasse TextStream in den FSO, die häufig benötigte Funktionen für die Arbeit mit Textdateien zur Verfügung stellt. Nachfolgend der Code, den Sie benötigen, um ein Objekt der Klasse zu deklarieren.

Dim t As TextStream
Textdatei erstellen

Eine Textdatei zu erstellen ist mit Hilfe des FSO-Objekts ein Zweizeiler. Außerdem wird gleichzeitig die Datei auch noch für die Bearbeitung geöffnet.

'Textdatei C:\config.txt erstellen
Dim t As TextStream

Set t = FSO.CreateTextFile("C:\config.txt", True)
Über die Methode CreateTextFile des FSO-Objekts können Sie eine neue Textdatei erstellen. Als ersten Parameter übergeben Sie dafür den Dateinamen, der zweite Parameter gibt an, ob eine eventuell schon vorhandene Datei mit gleichem Namen überschrieben werden soll. Wenn Sie True angeben, wird die Datei überschrieben, wenn Sie False angeben, wird keine neue Datei erstellt. Die Methode gibt ein Objekt vom Typ TextStream zurück. Sie öffnet auch gleichzeitig diese Textdatei, sodass eine entsprechende Methode (s. nächster Abschnitt) nicht mehr aufgerufen werden muss.

Textdatei öffnen

Bevor Sie Zugriff auf eine Textdatei erlangen, müssen Sie diese ähnlich wie in konventioneller Visual Basic-Manier öffnen, damit das TextStream-Objekt weiß, auf welche Datei sich die Aktionen beziehen, die über es selbst ausgeführt werden. Eine Datei kann ForWriting (zum Schreiben), ForReading (zum Lesen) oder ForAppending (zum Anhängen von Text an eine vorhandene Datei) geöffnet werden.

'C:\config.txt zum Anhängen von Text öffnen - unsichere Methode
Dim t As TextStream

Set t = FSO.OpenTextFile("C:\config.txt", ForAppending)
Wenn die Datei noch nicht existiert, wird bei ForAppending ein Fehler ausgelöst. Um dies zu verhindern, kann man den dritten Parameter Create auf True setzen (standardmäßig ist dieser auf False gesetzt).

'C:\config.txt zum Anhängen von Text öffnen - sichere Methode
Dim t As TextStream

Set t = FSO.OpenTextFile("C:\config.txt", ForAppending, True)
Text schreiben

Mit dem TextStream-Objekt erhalten Sie gleich mehrere Möglichkeiten komfortabel Text in einer Textdatei unterzubringen. Hier sollen die drei am häufigsten benutzten Methoden kurz vorgestellt werden. Die erste dieser drei Möglichkeiten ist die Methode WriteLine. Übergeben wird der in die Datei zu schreibende Text. Es wird automatisch ein Zeilenumbruch erzeugt, sodass Sie direkt in der nächsten Zeile weiter schreiben können. Die Methode Write funktioniert ähnlich wie WriteLine, nur das kein automatischer Zeilenumbruch erfolgt. Die Cursorposition verbleibt also in der gerade geschriebenen Zeile. Schließlich gibt es noch die Methode WriteBlankLines. Über diese kann man leere Zeilen in eine Textdatei einfügen, was praktisch ist, wenn man z. B. einen bestimmten Wert in einer Konfigurationsdatei nicht setzen möchte. Nachfolgend ein paar Beispiele für die oben beschriebenen Methoden.

't ist ein geöffneter TextStream
'10 Zeilen in die Textdatei schreiben
Dim i As Byte

For i = 1 to 10
	t.WriteLine "FSO"
Next i
Inhalt der Datei nach der Ausführung des obigen Codes:

FSO
FSO
FSO
FSO
FSO
FSO
FSO
FSO
FSO
FSO

't ist ein geöffneter TextStream
'10x hintereinander in die Textdatei schreiben
Dim i As Byte

For i = 1 To 10
	t.Write "FSO"
Next i
Inhalt der Datei nach der Ausführung des obigen Codes:

FSOFSOFSOFSOFSOFSOFSOFSOFSOFSO

't ist ein geöffneter TextStream
'2 leere Zeilen schreiben

t.WriteLine "Hiernach folgen zwei leere Zeilen."
t.WriteBlankLines 2
t.WriteLine "Ende der Datei"
Inhalt der Datei nach der Ausführung des obigen Codes:

Hiernach folgen zwei leere Zeilen.


Ende der Datei
Textdatei lesen

Das Lesen einer Textdatei gestaltet sich ebenso einfach wie das Schreiben. Auch hier gibt es mehrere Möglichkeiten den Text einzulesen - je nachdem, was man nachher damit vor hat. Um den gesamten Text einer Datei in eine Stringvariable einzulesen, bedient man sich zum Beispiel der Methode ReadAll des TextStream-Objekts. Um eine einzelne Zeile zu lesen, rufen Sie die Methode ReadLine auf. Hier können Sie die Eigenschaft AtEndOfStream einsetzen, um herauszufinden, ob Sie sich am Ende der Datei befinden.

Ein entsprechendes Codebeispiel finden Sie am Ende dieses Abschnitts. Ähnlich wie beim Schreiben können Sie über SkipLine eine Zeile beim Auslesen einer Textdatei überspringen. Und das ist noch nicht alles: mit der Methode Skip ist es möglich sogar eine beliebige Anzahl an Zeichen zu überspringen. Schließlich können Sie über Line und Column die aktuelle Zeile und Spalte des Dateicursors auslesen. Ein paar Codebeispiele verdeutlichen die Funktionsweise der oben beschriebenen Methoden.

Die Datei die eingelesen werden soll, enthält folgende Zeilen:

Dies ist 
ein erster
Test
SKIP
blabla
Ende

't ist ein geöffneter TextStream
'gesamten Inhalt auslesen und anzeigen
Dim strTemp As String

strTemp = t.ReadAll
MsgBox strTemp

't ist ein geöffneter TextStream
'erste Zeile auslesen
Dim strTemp As String

strTemp = t.ReadLine
MsgBox strTemp 'Ausgabe: "Dies ist"

't ist ein geöffneter TextStream
'zeilenweises Auslesen einer Textdatei
Dim strTemp As String
Dim strAusgabe As String

Do
	strTemp = t.ReadLine
	
	If strTemp = "SKIP" Then

		t.SkipLine

	Else

		strAusgabe = strTemp & vbNewLine

	End If

Loop Until t.AtEndOfStream
Die Variable strAusgabe enthält nach Ausführung des Codes den Wert

Dies ist 
ein erster
Test
SKIP
Ende
Somit ist dies ein exzellenter Weg um Steueranweisungen für das Einlesen einer Textdatei in den Text selbst einzubauen.

Textdatei schließen

Nach getaner Arbeit muss das TextStream-Objekt wieder geschlossen werden. Dafür wird die Close-Methode aufgerufen, die keine Parameter erwartet:

't ist ein geöffnetes TextStream-Objekt
'Textdatei wieder schließen
t.Close
Systemverzeichnisse und temporäre Dateien

Der letzte Teil dieses Artikels befasst sich mit Verzeichnissen, denen im Computer eine besondere Bedeutung zukommt, den Systemverzeichnissen. Da das temporäre Verzeichnis ein besonders interessantes Verzeichnis unter diesen Spezialverzeichnissen ist, erkläre ich in diesem Abschnitt auch die Erzeugung von temporären Dateinamen - alles mit Hilfe der FSO.

Systemverzeichnisse ermitteln

Das FSO-Objekt stellt uns eine gesonderte Methode zur Verfügung, um den Pfad zu speziellen Ordnern zu ermitteln (diese sind in jedem System anders; so ist es zum Beispiel auch möglich, das Betriebssystem nicht nach C:\Windows zu installieren). Diese Methode heißt GetSpecialFolder und erwartet eine Konstante aus der Enumeration Scripting.SpecialFolderConst, die angibt zu welchem Systemverzeichnis der Pfad ermittelt werden soll. Folgende Konstanten sind zugelassen.

Konstante
Wert
Beschreibung
WindowsFolder
0
Verzeichnis in dem sich die Windows-Installation befindet (standardmäßig C:\Windows)
SystemFolder
1
Verzeichnis in dem sich die Systemdateien der Windows-Installation befinden. Auch interessant für eigene DLLs.
TemporaryFolder
2
Temporärer Ordner in den alle kurzzeitig benötigten Dateien geschrieben werden. Nicht mehr benötigte Dateien werden nach einer bestimmten Zeitspanne automatisch vom Betriebssystem gelöscht.


Die Ausgabe dieser drei Verzeichnisse über eine Visual Basic MessageBox lässt sich folgendermaßen realisieren.

'Ausgabe der Systemverzeichnisse
MsgBox FSO.GetSpecialFolder(WindowsFolder)
MsgBox FSO.GetSpecialFolder(SystemFolder)
MsgBox FSO.GetSpecialFolder(TemporaryFolder)
Temporäre Dateinamen

Falls man eine temporäre Datei benutzen muss, sich als Programmierer aber nicht sicher ist, ob eine gleichnamige Datei vielleicht schon im temporären Verzeichnis existiert, kann man über die Methode GetTempFile (ohne Parameter) einen automatisch und zufällig generierten Dateinamen für eine temporäre Datei erhalten, die noch nicht existiert. Die Dateinamen fallen zwar etwas kryptisch aus, sind aber in jedem Fall korrekt.

'Temporären Dateinamen erzeugen
Dim strTempFileName As String

strTempFileName = FSO.GetTempFile() 'Rückgabe z. B. "C2C481.tmp"

strTempFileName = FSO.GetSpecialFolder(TemporaryFolder) & "\" & strTempFileName
Zusammenfassung und Ausblick

In diesem Artikel haben Sie gelernt:
    Laufwerke
  • Die Existenz eines Laufwerks zu prüfen
  • Drive-Objekten einen Verweis auf ein Laufwerk zuzuweisen
  • Alle verfügbaren Laufwerke aufzulisten
  • Anzahl der Laufwerke zu ermitteln
  • Zu testen, ob ein Laufwerk bereit ist
  • Wie Sie Byte in Kilo-, Mega-, Giga- oder TeraByte umrechnen
  • Den gesamten, freien und belegten Speicherplatz zu ermitteln
  • Verschiedene Laufwerkstypen zu unterscheiden
  • Das Dateisystem eines Laufwerks herauszufinden
  • Das Stammverzeichnis eines Laufwerks festzustellen
  • Den Freigabenamen eines Netzlaufwerks auszulesen
  • Die Datenträgerbezeichnung und die Seriennummer zu ermitteln
    Textdateien
  • Eine Textdatei zu erstellen
  • Eine Textdatei zum Lesen, Schreiben und Anhängen von Text zu öffnen
  • Eine Textdatei zu schreiben (zeilenweise oder zeichenweise)
  • Eine Textdatei zu lesen (ganz, zeilenweise oder zeichenweise)
  • Eine Textdatei wieder zu schließen
    Systemverzeichnisse und temporäre Dateien
  • Spezielle Systemverzeichnispfade zu ermitteln
  • Einen temporären Dateinamen zu generieren
Im nächsten und letzten Teil werde ich die beiden Objekte Dictionary und Collection unter die Lupe nehmen und unter Aspekten wie Geschwindigkeit, Einfachheit, Fehlerfreiheit etc. miteinander vergleichen und hoffe, dass dieser letzte Teil für Sie nicht minder interessant, umfangreich und lesenswert als die beiden vorhergehenden Teile sein wird.


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1157
Comments: 0