フォルダの属性を取得、設定するには、DirectoryInfoクラスのAttributesプロパティを使用します。AttributesプロパティはFileAttributes列挙型であり、その値は属性を示すメンバ値のビットの組み合わせになります。FileAttributes列挙型について詳しくは、「ファイルの属性を取得、設定する」をご覧ください。
'ディレクトリの属性を取得する Dim di As New System.IO.DirectoryInfo("C:\test") '隠し属性があるか調べる If (di.Attributes And System.IO.FileAttributes.Hidden) = _ System.IO.FileAttributes.Hidden Then Console.WriteLine("隠し属性があります。") End If '隠し属性を追加する di.Attributes = di.Attributes Or System.IO.FileAttributes.Hidden '隠し属性を削除する di.Attributes = di.Attributes And Not System.IO.FileAttributes.Hidden
//ディレクトリの属性を取得する System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\test"); //隠し属性があるか調べる if ((di.Attributes & System.IO.FileAttributes.Hidden) == System.IO.FileAttributes.Hidden) { Console.WriteLine("隠し属性があります。"); } //隠し属性を追加する di.Attributes |= System.IO.FileAttributes.Hidden; //隠し属性を削除する di.Attributes &= ~System.IO.FileAttributes.Hidden;
補足:DirectoryInfoクラスは、フォルダ情報を返すプロパティ(Attributes、LastWriteTimeなど)から最初に値を取得したときにキャッシュを作成し、2回目以降に値を取得するときはキャッシュされた情報を返します。よってこれらのプロパティは、現在の情報ではなく、古い情報を返す可能性があります。最新の情報を取得するためにキャッシュを最新にするには、Refreshメソッドを呼び出します。なおこれらのプロパティに値を設定したときは、キャッシュが削除されます。
「ファイルやフォルダをNTFS圧縮する」で紹介しています。
「ファイルやフォルダをNTFS暗号化する」で紹介しています。