FileOptions Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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 şifrelerinin 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şildiğini 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
belirtmek, 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.