Udostępnij za pośrednictwem


FileOptions Wyliczenie

Definicja

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
FileOptions
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.

Dotyczy