FileAttributes 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供檔案和目錄的屬性。
此列舉支援其成員值的位元組合。
public enum class FileAttributes
[System.Flags]
public enum FileAttributes
[System.Flags]
[System.Serializable]
public enum FileAttributes
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum FileAttributes
[<System.Flags>]
type FileAttributes =
[<System.Flags>]
[<System.Serializable>]
type FileAttributes =
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileAttributes =
Public Enum FileAttributes
- 繼承
- 屬性
欄位
Archive | 32 | 此檔案標示為包含在增量備份作業中。 Windows 會在每次修改檔案時設定這個屬性,而備份軟體應該在增量備份期間處理檔案時將其清除。 |
Compressed | 2048 | 檔案已壓縮。 |
Device | 64 | 保留供未來使用。 |
Directory | 16 | 檔案是目錄。 Windows、Linux 及 macOS 支援 |
Encrypted | 16384 | 檔案或目錄已加密。 對檔案而言,這表示檔案中的所有資料都被加密。 對於目錄而言,這表示加密 (Encryption) 是新建檔案和目錄的預設值。 |
2 | 檔案是隱藏的,因此不會包括在一般目錄的清單內。 Windows、Linux 及 macOS 支援 |
|
IntegrityStream | 32768 | 包含資料完整性支援的檔案或目錄。 將這個值套用至檔案時,檔案中的所有資料流都有整合性支援。 將這個值套用至目錄時,該目錄中所有新的檔案和子目錄預設會包含完整性支援。 |
None | 0 | |
Normal | 128 | 此檔案是沒有特殊屬性的標準檔案。 此屬性只有在單獨使用時有效。 Windows、Linux 及 macOS 支援 |
NoScrubData | 131072 | 從資料完整性掃描中排除的檔案或目錄。 將這個值套用至目錄時,預設會從資料完整性中排除該目錄中所有新的檔案和子目錄。 |
NotContentIndexed | 8192 | 作業系統的內容索引服務將不會編製檔案的索引。 |
Offline | 4096 | 檔案為離線狀態。 檔案資料不是直接可供使用的。 |
ReadOnly | 1 | 檔案是唯讀的。 Windows、Linux 及 macOS 支援 |
ReparsePoint | 1024 | 檔案包含重新剖析的位置,它是與檔案或目錄有關聯的使用者定義的區塊。 Windows、Linux 及 macOS 支援 |
SparseFile | 512 | 檔案是疏鬆檔案。 疏鬆檔案基本上為其資料幾乎包含零值的大型檔案。 |
System | 4 | 檔案是系統檔案。 也就是說,檔案是作業系統的一部分,或由作業系統獨佔使用。 |
Temporary | 256 | 檔案是暫存的。 暫存檔案,包含應用程式正在執行時所需的資料(但卻是應用程式完成後不需要的資料)。 檔案系統會嘗試將所有資料保留在記憶體中以便更快速存取,而不是將資料清除回大型存放區。 不再需要暫存檔案時,應用程式應盡快加以刪除。 |
範例
下列範例示範如何擷取檔案的屬性,並檢查檔案是否為唯讀。
using System;
using System.IO;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
FileAttributes attributes = File.GetAttributes("c:/Temp/testfile.txt");
if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Console.WriteLine("read-only file");
}
else
{
Console.WriteLine("not read-only file");
}
}
}
}
open System.IO
let attributes = File.GetAttributes "c:/Temp/testfile.txt"
if attributes &&& FileAttributes.ReadOnly = FileAttributes.ReadOnly then
printfn "read-only file"
else
printfn "not read-only file"
Imports System.IO
Imports System.Text
Module Module1
Sub Main()
Dim attributes = File.GetAttributes("c:/Temp/testfile.txt")
If ((attributes And FileAttributes.ReadOnly) = FileAttributes.ReadOnly) Then
Console.WriteLine("read-only file")
Else
Console.WriteLine("not read-only file")
End If
End Sub
End Module
備註
您可以藉由呼叫 File.GetAttributes 方法來取得檔案和目錄的屬性,也可以藉由呼叫 File.SetAttributes 方法來設定這些屬性。
您無法使用 File.SetAttributes 方法變更物件的壓縮狀態File。 相反地,您必須實際使用壓縮工具或命名空間中的 System.IO.Compression 其中一個類別來壓縮檔案。
Linux 和 macOS 上的 .NET Core 不支援下列屬性:
- FileAttributes.Archive
- FileAttributes.Compressed
- FileAttributes.Device
- FileAttributes.Encrypted
- FileAttributes.IntegrityStream
- FileAttributes.NoScrubData
- FileAttributes.NotContentIndexed
- FileAttributes.Offline
- FileAttributes.SparseFile
- FileAttributes.System
- FileAttributes.Temporary
在 Unix 系統上,針對名稱開頭為句號的檔案,包含 Hidden
所傳File.GetAttributes回的值 (“。) 。 在macOS上,您可以取得或設定隱藏旗標。