FileSystem.FileOpen Yöntem

Tanım

Giriş veya çıkış için bir dosya açar. Bu My özellik, dosya G/Ç işlemlerinde FileOpendaha iyi üretkenlik ve performans sağlar. Daha fazla bilgi için bkz. FileSystem.

public static void FileOpen (int FileNumber, string FileName, Microsoft.VisualBasic.OpenMode Mode, Microsoft.VisualBasic.OpenAccess Access = Microsoft.VisualBasic.OpenAccess.Default, Microsoft.VisualBasic.OpenShare Share = Microsoft.VisualBasic.OpenShare.Default, int RecordLength = -1);
static member FileOpen : int * string * Microsoft.VisualBasic.OpenMode * Microsoft.VisualBasic.OpenAccess * Microsoft.VisualBasic.OpenShare * int -> unit
Public Sub FileOpen (FileNumber As Integer, FileName As String, Mode As OpenMode, Optional Access As OpenAccess = Microsoft.VisualBasic.OpenAccess.Default, Optional Share As OpenShare = Microsoft.VisualBasic.OpenShare.Default, Optional RecordLength As Integer = -1)

Parametreler

FileNumber
Int32

Gereklidir. Herhangi bir geçerli dosya numarası. FreeFile Bir sonraki kullanılabilir dosya numarasını almak için işlevini kullanın.

FileName
String

Gereklidir. Dosya adını belirten bir dize ifadesi; dizin veya klasör ve sürücü içerebilir.

Mode
OpenMode

Gereklidir. Dosya modunu belirten numaralandırma: Append, Binary, Input, Outputveya Random. Daha fazla bilgi için bkz OpenMode . .

Access
OpenAccess

İsteğe bağlı. Açık dosyada izin verilen işlemleri belirten numaralandırma: Read, Writeveya ReadWrite. varsayılan olarak ReadWriteayarlanır. Daha fazla bilgi için bkz OpenAccess . .

Share
OpenShare

İsteğe bağlı. Açık dosyada diğer işlemler tarafından izin verilmeyen işlemleri belirten numaralandırma: Shared, Lock Read, Lock Writeve Lock Read Write. varsayılan olarak Lock Read Writeayarlanır. Daha fazla bilgi için bkz OpenShare . .

RecordLength
Int32

İsteğe bağlı. 32.767'den küçük veya buna eşit sayı (bayt). Rastgele erişim için açılan dosyalar için bu değer kayıt uzunluğudur. Sıralı dosyalar için bu değer arabelleğe alınan karakter sayısıdır.

Özel durumlar

Kayıt uzunluğu negatiftir (ve -1'e eşit değildir).

FileName zaten açık veya FileName geçersiz.

Örnekler

Bu örnekte, bir dosyaya giriş ve çıkışı etkinleştirmek için işlevinin FileOpen çeşitli kullanımları gösterilmektedir.

Aşağıdaki kod dosyayı TestFile modda Input açar.

FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)

Bu örnek, dosyayı Binary yalnızca yazma işlemleri için modunda açar.

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)

Aşağıdaki örnek dosyayı modda Random açar. dosyası yapısının Personkayıtlarını içerir.

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

Bu kod örneği dosyayı modda Output açar; herhangi bir işlem dosyayı okuyabilir veya dosyaya yazabilir.

FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)

Bu kod örneği dosyayı okuma modunda Binary açar; diğer işlemler dosyayı okuyamaz.

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read,
   OpenShare.LockRead)

Açıklamalar

FileOpen İşlev geriye dönük uyumluluk için sağlanır ve performansı etkileyebilir. Eski olmayan uygulamalar My.Computer.FileSystem için nesnesi daha iyi performans sağlar. Daha fazla bilgi için bkz. Visual Basic ile Dosya Erişimi.

Herhangi bir G/Ç işleminin gerçekleştirilebilmesi için önce dosyayı açmanız gerekir. FileOpen dosyaya G/Ç için bir arabellek ayırır ve arabellekle kullanılacak erişim modunu belirler.

Önemli

Bir dosyaya yazarken, yazmaya çalıştığı dosya yoksa uygulamanın bir dosya oluşturması gerekebilir. Bunu yapmak için, dosyanın oluşturulacağı dizin için izin gerekir. Ancak, tarafından FileName belirtilen dosya varsa, uygulamanın yalnızca dosyanın kendisine izin alması gerekir Write . Güvenliği artırmaya yardımcı olmak için mümkün olan her yerde, dağıtım sırasında dosyayı oluşturun ve tüm dizin yerine yalnızca bu dosyaya izin verin Write . Güvenliği geliştirmeye yardımcı olmak için kök dizine veya Program Files dizinine veri yazmak yerine kullanıcı dizinlerine veri yazın.

Açılacak kanal işlevi kullanılarak FreeFile() bulunabilir.

Önemli

İşlev, FileOpen kısmi güven durumlarında yürütülmesini etkileyebilecek numaralandırmadan FileIOPermissionAccess erişim gerektirirRead. Daha fazla bilgi için bkz FileIOPermissionAccess . numaralandırma.

Şunlara uygulanır

Ayrıca bkz.