ファイルを隠しファイルに設定する、隠しファイルを解除する (ファイルの属性の取得) - C#

C#でファイルを隠しファイルに設定するコードを紹介します。

UI

下図のUIを準備します。

コード

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace FileOperationDemo
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button_CheckHiddenFile_Click(object sender, EventArgs e)
    {
      if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
        FileAttributes fa = File.GetAttributes(openFileDialog1.FileName);
        if ((fa & FileAttributes.Hidden) == FileAttributes.Hidden) {
          textBox1.Text = "隠しファイルです。";
        }
        else {
          textBox1.Text = "隠しファイルではありません。";         
        }
      }
    }

    private void button_SetHiddenFile_Click(object sender, EventArgs e)
    {
      if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
        FileAttributes fa = File.GetAttributes(openFileDialog1.FileName);
        fa = fa | FileAttributes.Hidden;
        File.SetAttributes(openFileDialog1.FileName,fa);
        textBox1.Text = "隠しファイルに設定しました。";
      }

    }
  }
}

解説

ファイル属性の取得
  FileAttributes fa = File.GetAttributes(openFileDialog1.FileName);
  if ((fa & FileAttributes.Hidden) == FileAttributes.Hidden) {
    textBox1.Text = "隠しファイルです。";
  }
  else {
    textBox1.Text = "隠しファイルではありません。";         
  }
ファイルの属性を取得するにはFileクラスのGetAttributes()メソッドを用います。ファイルの属性はFileAttributes列挙体で取得します。取得したFileAttributesにビット演算をして必要となるフラグを取り出します。
ファイル属性の設定
  FileAttributes fa = File.GetAttributes(openFileDialog1.FileName);
  fa = fa | FileAttributes.Hidden;
  File.SetAttributes(openFileDialog1.FileName,fa);
  textBox1.Text = "隠しファイルに設定しました。";
ファイルに属性を設定する場合はFileクラスのSetAttributes()メソッドを用います。設定するファイルの属性はFileAttributes列挙体で指定します。

実行結果

[隠しファイルチェック]ボタンを押しダイアログでファイルを選択すると隠しファイルかの判定をします。
[隠しファイル設定]ボタンを押し、ダイアログでファイルを選択すると選択したファイルを隠しファイルに設定します。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-06
作成日: 2011-12-01
iPentec all rights reserverd.