ファイルの属性を取得するには、File.GetAttributes()を使用します。
サンプル
例)ファイルが読み取り専用かどうか判定する
using System.IO;
// 対象ファイルパス
string path = @"C:\sample.txt";
// 属性判定
FileAttributes fa = File.GetAttributes(path);
if ((fa & FileAttributes.ReadOnly) == 0)
{
Console.WriteLine("ファイルは読み取り専用ではありません");
}
else
{
Console.WriteLine("ファイルは読み取り専用です");
}
ファイル属性の種類
ファイル属性値には以下のようなものがあります。
値 | 意味 |
---|---|
ReadOnly | 読取り専用ファイル |
Hidden | 隠しファイル |
Normal | 通常ファイル |
Directory | ディレクトリー(フォルダー) |
Compressed | 圧縮ファイル |
Archive | アーカイブ状態ファイル |
Offline | オフライン状態ファイル |
System | システムファイル(OSが使用するファイル) |
SparseFile | スパースファイル |
Encrypted | 暗号化状態ファイル |
Temporary | 一時ファイル |
備考
- File.GetAttributesの引数に実在しないパスを渡すとSystem.IO.FileNotFoundExceptionが発生します。
- 引数に渡すパスは、ファイル存在チェックを行った後に渡すようにすると安全です。
(参考)→ [C#] ファイルの存在チェックを行う