FileSystem.FileOpen Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Giriş veya çıkış için bir dosya açar. Bu My
özellik, dosya G/Ç işlemlerinde FileOpen
daha 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
, Output
veya 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
, Write
veya ReadWrite
. varsayılan olarak ReadWrite
ayarlanı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 Write
ve Lock Read Write
. varsayılan olarak Lock Read Write
ayarlanı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 Person
kayı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.