Condividi tramite


FileOptions Enumerazione

Definizione

Rappresenta le opzioni avanzate per la creazione di un oggetto FileStream.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

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
Ereditarietà
FileOptions
Attributi

Campi

Asynchronous 1073741824

Indica che è possibile utilizzare un file per la lettura e la scrittura asincrona.

DeleteOnClose 67108864

Indica l'eliminazione automatica del file quando non è più in uso.

Encrypted 16384

Indica che un file è crittografato ed è possibile decrittografarlo solamente utilizzando lo stesso account utente utilizzato per la crittografia.

None 0

Indica che non deve essere utilizzata alcuna opzione aggiuntiva quando crea un oggetto FileStream.

RandomAccess 268435456

Indica l'accesso casuale al file. Il sistema può interpretare questa situazione come hint per l'ottimizzazione della memorizzazione del file nella cache.

SequentialScan 134217728

Indica che l'accesso del file deve avvenire in modo sequenziale dall'inizio alla fine. Il sistema può interpretare questa situazione come hint per l'ottimizzazione della memorizzazione del file nella cache. Se un'applicazione sposta il puntatore a file per l'accesso casuale, la cache potrebbe non essere ottimale ma l'operazione viene comunque garantita. La scelta di questo flag in alcuni casi può migliorare le prestazioni.

WriteThrough -2147483648

Indica al sistema di ignorare le cache intermedie e di accedere direttamente al disco.

Esempio

Nell'esempio seguente viene illustrato come usare il valore asincrono durante la creazione di un flusso di file.

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

Commenti

La specifica del flag può aumentare le prestazioni per le applicazioni che leggeno file di grandi dimensioni usando l'accesso FileOptions.SequentialScan sequenziale. I miglioramenti delle prestazioni possono essere ancora più evidenti per le applicazioni che leggono file di grandi dimensioni principalmente in sequenza, ma occasionalmente ignorano intervalli di byte di piccole dimensioni.

Si applica a