質問

ファイルで \ Properties を右クリックしたときに Read Only チェックボックスを表示するフラグを設定しようとしています。

ありがとう!

役に立ちましたか?

解決

2つの方法:

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;

または

// Careful! This will clear other file flags e.g. FileAttributes.Hidden
File.SetAttributes(filePath, FileAttributes.ReadOnly/FileAttributes.Normal);

FileInfoのIsReadOnlyプロパティは、基本的に2番目の方法で手動で行う必要のあるビット反転を行います。

他のヒント

読み取り専用フラグを設定するには、実質的にファイルを書き込み不可にします:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) | FileAttributes.ReadOnly);

読み取り専用フラグを削除するには、実質的にファイルを書き込み可能にします:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);

読み取り専用フラグをトグルして、現在のフラグと反対にする:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) ^ FileAttributes.ReadOnly);

これは基本的に有効なビットマスクです。特定のビットを設定して読み取り専用フラグを設定し、クリアしてフラグを削除します。

上記のコードは、ファイルの他のプロパティを変更しないことに注意してください。つまり、上記のコードを実行する前にファイルが非表示にされていた場合、その後も非表示のままになります。ファイル属性を単に .Normal または .ReadOnly に設定すると、プロセス内の他のフラグが失われる可能性があります。

c#:

File.SetAttributes(filePath、FileAttributes.Normal);

File.SetAttributes(filePath、FileAttributes.ReadOnly);

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top