FileOptions 列舉
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示用於建立 FileStream 物件的進階選項。
此列舉支援其成員值的位元組合。
public enum class FileOptions
[System.Flags]
public enum FileOptions
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum FileOptions
[<System.Flags>]
type FileOptions =
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type FileOptions =
Public Enum FileOptions
- 繼承
- 屬性
Asynchronous | 1073741824 | 表示檔案可用於非同步讀取和寫入。 |
DeleteOnClose | 67108864 | 表示檔案不再使用時會自動刪除。 |
Encrypted | 16384 | 表示檔案已加密,而且只能使用相同的加密使用者帳戶才能解密。 |
None | 0 | 表示建立 FileStream 物件時,不應使用任何其他選項。 |
RandomAccess | 268435456 | 表示檔案是隨機存取的。 系統可使用這個做為最佳化檔案快取的提示。 |
SequentialScan | 134217728 | 表示檔案是按順序從開頭至結尾依序存取。 系統可使用這個做為最佳化檔案快取的提示。 如果應用程式藉移動檔案指標來進行隨機存取,則可能不會發生最佳快取;然而,仍然保證正確的作業。 指定此旗標在某些情況下可提升效能。 |
WriteThrough | -2147483648 | 表示系統應透過中繼快取直接寫入磁碟。 |
下列範例示範如何在建立檔案數據流時使用異步值。
using System;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
WriteToFile();
}
static async void WriteToFile()
{
byte[] bytesToWrite = Encoding.Unicode.GetBytes("example text to write");
using (FileStream createdFile = File.Create("c:/Temp/testfile.txt", 4096, FileOptions.Asynchronous))
{
await createdFile.WriteAsync(bytesToWrite, 0, bytesToWrite.Length);
}
}
}
}
Imports System.IO
Imports System.Text
Module Module1
Sub Main()
WriteToFile()
End Sub
Async Sub WriteToFile()
Dim bytesToWrite = Encoding.Unicode.GetBytes("example text to write")
Using createdFile As FileStream = File.Create("c:/Temp/testfile.txt", 4096, FileOptions.Asynchronous)
Await createdFile.WriteAsync(bytesToWrite, 0, bytesToWrite.Length)
End Using
End Sub
End Module
針對使用循序存取讀取大型檔案的應用程式,指定 FileOptions.SequentialScan
旗標可以提升效能。 對於大部分依序讀取大型檔案的應用程式,效能提升可能更明顯,但偶爾會略過少量的位元組範圍。
產品 | 版本 |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |