FileSystem.FileOpen 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開啟要當做輸入或輸出的檔案。 相較於 FileOpen
,My
功能可提升檔案 I/O 作業的產能和效能。 如需詳細資訊,請參閱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)
參數
- FileNumber
- Int32
必要。 任何有效的檔案數目。 使用 FreeFile
函式取得下一個可用的檔案編號。
- FileName
- String
必要。 字串運算式,可指定檔名,也可能包括目錄或資料夾與磁碟機。
- Access
- OpenAccess
選擇性。 指定開啟檔案上允許的作業之列舉類型:Read
、Write
或 ReadWrite
。 預設值為 ReadWrite
。 如需詳細資訊,請參閱OpenAccess。
- Share
- OpenShare
選擇性。 指定開啟的檔案上其他處理序不允許之作業的列舉類型:Shared
、Lock Read
、Lock Write
和 Lock Read Write
。 預設值為 Lock Read Write
。 如需詳細資訊,請參閱OpenShare。
- RecordLength
- Int32
選擇性。 數字小於或等於 32,767 (位元組)。 對於為隨機存取開啟的檔案而言,這個值是資料錄長度。 對於循序檔案而言,這個值是緩衝的字元數。
例外狀況
資料錄的長度為負數 (而且不等於 -1)。
FileName
已經開啟,或 FileName
無效。
範例
本範例說明函式的各種 FileOpen
用法,以啟用檔案的輸入和輸出。
下列程式代碼會以Input
模式開啟檔案TestFile
。
FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)
本範例只會以寫入作業模式 Binary
開啟檔案。
FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)
下列範例會以 Random
模式開啟檔案。 檔案包含 結構的 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
此程式代碼範例會以 Output
模式開啟檔案;任何進程都可以讀取或寫入檔案。
FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)
此程式代碼範例會以 Binary
讀取模式開啟檔案;其他進程無法讀取檔案。
FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read,
OpenShare.LockRead)
備註
函 FileOpen
式是針對回溯相容性而提供,而且可能會影響效能。 針對非舊版應用程式, My.Computer.FileSystem
物件可提供更佳的效能。 如需詳細資訊,請參閱 Visual Basic 的檔案存取。
您必須在檔案上執行任何 I/O 作業之前開啟檔案。 FileOpen
將 I/O 的緩衝區配置給檔案,並決定要與緩衝區搭配使用的存取模式。
重要
寫入檔案時,如果嘗試寫入的檔案不存在,應用程式可能必須建立檔案。 若要這樣做,它需要檔案建立所在的目錄許可權。 不過,如果 指定的 FileName
檔案存在,應用程式 Write
只需要檔案本身的許可權。 盡可能協助改善安全性,請在部署期間建立檔案,並只授與該檔案的許可權,而不是授 Write
與整個目錄。 為了協助改善安全性,請將數據寫入用戶目錄,而不是寫入根目錄或 Program Files 目錄。
您可以使用 函式找到要開啟的 FreeFile()
通道。
重要
函 FileOpen
式需要 Read
從列舉存取 FileIOPermissionAccess
,這可能會影響其在部分信任情況下的執行。 如需詳細資訊,請參閱 FileIOPermissionAccess 列舉。