FileOptions Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje zaawansowane opcje tworzenia FileStream obiektu.
To wyliczenie obsługuje bitową kombinację jego wartości składowych.
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
- Dziedziczenie
- Atrybuty
Pola
Asynchronous | 1073741824 | Wskazuje, że plik może służyć do asynchronicznego odczytywania i zapisywania. |
DeleteOnClose | 67108864 | Wskazuje, że plik jest automatycznie usuwany, gdy nie jest już używany. |
Encrypted | 16384 | Wskazuje, że plik jest zaszyfrowany i można go odszyfrować tylko przy użyciu tego samego konta użytkownika używanego do szyfrowania. |
None | 0 | Wskazuje, że podczas tworzenia FileStream obiektu nie należy używać żadnych dodatkowych opcji. |
RandomAccess | 268435456 | Wskazuje, że dostęp do pliku jest uzyskiwany losowo. System może użyć tego jako wskazówki, aby zoptymalizować buforowanie plików. |
SequentialScan | 134217728 | Wskazuje, że dostęp do pliku ma być uzyskiwany sekwencyjnie od początku do końca. System może użyć tego jako wskazówki, aby zoptymalizować buforowanie plików. Jeśli aplikacja przenosi wskaźnik pliku na potrzeby dostępu losowego, optymalne buforowanie może nie wystąpić; jednak prawidłowa operacja jest nadal gwarantowana. Określenie tej flagi może zwiększyć wydajność w niektórych przypadkach. |
WriteThrough | -2147483648 | Wskazuje, że system powinien zapisywać dane w dowolnej pośredniej pamięci podręcznej i przechodzić bezpośrednio na dysk. |
Przykłady
W poniższym przykładzie pokazano, jak używać wartości asynchronicznej podczas tworzenia strumienia plików.
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
Uwagi
Określenie flagi FileOptions.SequentialScan
może zwiększyć wydajność aplikacji odczytujących duże pliki przy użyciu dostępu sekwencyjnego. Wzrost wydajności może być jeszcze bardziej zauważalny w przypadku aplikacji, które odczytują duże pliki głównie sekwencyjnie, ale czasami pomijają małe zakresy bajtów.