C#でファイルを書き込み可能にする最良の方法
-
05-07-2019 - |
質問
ファイルで \ 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);
所属していません StackOverflow