FileOptions Sabit listesi

Tanım

Nesne oluşturmak FileStream için gelişmiş seçenekleri temsil eder.

Bu sabit listesi, üyeleri için bit düzeyinde karşılaştırmayı destekler.

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
Devralma
FileOptions
Öznitelikler

Alanlar

Asynchronous 1073741824

Bir dosyanın zaman uyumsuz okuma ve yazma için kullanılabileceğini gösterir.

DeleteOnClose 67108864

Artık kullanımda olmayan bir dosyanın otomatik olarak silindiğini gösterir.

Encrypted 16384

Bir dosyanın şifrelendiğini ve şifresinin yalnızca şifreleme için kullanılan aynı kullanıcı hesabı kullanılarak çözülebileceğini gösterir.

None 0

Nesne oluştururken FileStream ek seçeneklerin kullanılmaması gerektiğini gösterir.

RandomAccess 268435456

Dosyaya rastgele erişildiğini gösterir. Sistem bunu dosya önbelleğini iyileştirmek için ipucu olarak kullanabilir.

SequentialScan 134217728

Dosyaya baştan sona sıralı olarak erişilmeye başlandığını gösterir. Sistem bunu dosya önbelleğini iyileştirmek için ipucu olarak kullanabilir. Bir uygulama rastgele erişim için dosya işaretçisini taşırsa, en iyi önbelleğe alma gerçekleşmeyebilir; ancak doğru işlem yine de garanti edilir. Bu bayrağın belirtilmesi bazı durumlarda performansı artırabilir.

WriteThrough -2147483648

Sistemin herhangi bir ara önbellek üzerinden yazması ve doğrudan diske gitmesi gerektiğini gösterir.

Örnekler

Aşağıdaki örnekte, dosya akışı oluştururken Zaman Uyumsuz değerinin nasıl kullanılacağı gösterilmektedir.

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

Açıklamalar

Bayrağın FileOptions.SequentialScan belirtilmesi, sıralı erişim kullanarak büyük dosyaları okuyan uygulamaların performansını artırabilir. Büyük dosyaları çoğunlukla sıralı olarak okuyan, ancak bazen küçük bayt aralıklarını atlayan uygulamalar için performans artışları daha da belirgin olabilir.

Şunlara uygulanır