FileOpen-Funktion
Aktualisiert: November 2007
Öffnet eine Datei für Eingabe oder Ausgabe.
Das My-Feature ermöglicht bei Datei-E/A-Vorgängen höhere Produktivität und Leistung als FileOpen. Weitere Informationen finden Sie unter My.Computer.FileSystem-Objekt.
Public Sub FileOpen( _
ByVal FileNumber As Integer, _
ByVal FileName As String, _
ByVal Mode As OpenMode, _
Optional ByVal Access As OpenAccess = OpenAccess.Default, _
Optional ByVal Share As OpenShare = OpenShare.Default, _
Optional ByVal RecordLength As Integer = -1 _
)
Parameter
FileNumber
Erforderlich. Beliebige gültige Dateinummer. Mit der FreeFile-Funktion erhalten Sie die nächste verfügbare Dateinummer.FileName
Erforderlich. String-Ausdruck, der einen Dateinamen angibt und auch Verzeichnis-, Ordner- sowie Laufwerkangaben enthalten kann.Mode
Erforderlich. Enumeration, die den Dateimodus angibt: Append, Binary, Input, Output oder Random. (Weitere Informationen finden Sie unter OpenMode-Enumeration.)Access
Optional. Enumeration, die die Vorgänge angibt, die für die geöffnete Datei zulässig sind: Read, Write oder ReadWrite. Wird standardmäßig auf ReadWrite festgelegt. (Weitere Informationen finden Sie unter OpenAccess-Enumeration.)Share
Optional. Enumeration, die die Vorgänge angibt, die von anderen Prozessen nicht an der geöffneten Datei ausgeführt werden dürfen: Shared, Lock Read, Lock Write und Lock Read Write. Wird standardmäßig auf Lock Read Write festgelegt. (Weitere Informationen finden Sie unter OpenShare-Enumeration.)RecordLength
Optional. Zahl kleiner oder gleich 32.767 (Bytes). Bei mit wahlfreiem Zugriff geöffneten Dateien bezeichnet dieser Wert die Datensatzlänge. Bei sequenziellen Dateien bezeichnet der Wert die Anzahl der gepufferten Zeichen.
Ausnahmen
Ausnahmetyp |
Fehlernummer |
Bedingung |
---|---|---|
Ungültiges Access, Share oder Mode. |
||
WriteOnly-Datei ist für Input geöffnet. |
||
ReadOnly-Datei ist für Output geöffnet. |
||
ReadOnly-Datei ist für Append geöffnet. |
||
Datensatzlänge ist negativ (und nicht gleich -1). |
||
FileNumber ist ungültig (<-1 oder >255), oder FileNumber wird bereits verwendet. |
||
FileName ist bereits geöffnet, oder FileName ist ungültig. |
Beachten Sie die Spalte "Fehlernummer", wenn Sie Visual Basic 6.0-Anwendungen aktualisieren, die eine unstrukturierte Fehlerbehandlung verwenden. (Sie können die Fehlernummer mit der Number-Eigenschaft (Err-Objekt) vergleichen.) Wenn möglich, sollten Sie jedoch erwägen, eine solche Fehlersteuerung durch eine Übersicht über die strukturierte Ausnahmebehandlung für Visual Basic zu ersetzen.
Hinweise
Die FileOpen-Funktion wird zwecks Abwärtskompatibilität bereitgestellt und kann unter Umständen die Leistung beeinträchtigen. Wenn es sich nicht um Legacyanwendungen handelt, bietet das My.Computer.FileSystem-Objekt eine bessere Leistung. Weitere Informationen finden Sie unter Dateizugriff mit Visual Basic.
Sie müssen eine Datei öffnen, bevor E/A-Vorgänge darauf ausgeführt werden können. FileOpen reserviert einen E/A-Puffer für die Datei und legt den Zugriffsmodus für diesen Puffer fest.
Sicherheitshinweis: |
---|
Beim Schreiben in eine Datei muss eine Anwendung u. U. eine Datei erstellen, wenn die Datei, in die geschrieben werden soll, nicht vorhanden ist. Dazu benötigt die Anwendung die entsprechende Berechtigung für das Verzeichnis, in dem die Datei erstellt werden soll. Ist die durch FileName angegebene Datei jedoch bereits vorhanden, benötigt die Anwendung die Write-Berechtigung nur für die Datei selbst. Es ist in jedem Fall sicherer, die Datei erst während der Bereitstellung erstellen zu lassen und die Write-Berechtigung nur für diese Datei und nicht für das gesamte Verzeichnis zu gewähren. Zur Verbesserung der Sicherheit sollten Sie Daten eher in Benutzerverzeichnisse und nicht in das Stammverzeichnis oder in das Verzeichnis Programme schreiben. |
Der Kanal zum Öffnen kann mit der FreeFile()-Funktion ermittelt werden.
Sicherheitshinweis: |
---|
Die FileOpen-Funktion erfordert den Read-Zugriff aus der FileIOPermissionAccess-Enumeration. Dies kann sich auf die Ausführung der Funktion in teilweise vertrauenswürdigen Kontexten auswirken. Weitere Informationen finden Sie unter der FileIOPermissionAccess-Enumeration sowie unter Anfordern von Berechtigungen. |
Beispiel
In diesem Beispiel werden verschiedene Einsatzmöglichkeiten der FileOpen-Funktion veranschaulicht, mit denen Ein-/Ausgabevorgänge für Dateien durchgeführt werden.
Mit dem folgenden Code wird die Datei TestFile im Input-Modus geöffnet.
FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)
In diesem Beispiel wird die Datei im Binary-Modus ausschließlich für Schreibvorgänge geöffnet.
FileOpen(1, "TESTFILE", OpenMode.Binary,OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)
Das folgende Beispiel öffnet die Datei im Random-Modus. Die Datei enthält Datensätze mit der Struktur Person.
Structure Person
<VBFixedString(30)> Dim Name As String
Dim ID As Integer
End Structure
Public Sub ExampleMethod()
' Count 30 for the string, plus 4 for the integer.
FileOpen(1, "TESTFILE", OpenMode.Random, , , 34)
' Close before reopening in another mode.
FileClose(1)
End Sub
In diesem Codebeispiel wird die Datei im Output-Modus geöffnet. Alle Prozesse können Lese- und Schreibvorgänge auf der Datei ausführen.
FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)
In diesem Codebeispiel wird die Datei im Binary-Modus für den Lesezugriff geöffnet. Andere Prozesse können die Datei nicht lesen.
FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read, _
OpenShare.LockRead)
Hinweise für Entwickler intelligenter Geräte
Diese Funktion wird nicht unterstützt.
Anforderungen
Namespace:Microsoft.VisualBasic
**Modul:**FileSystem
**Assembly:**Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)