28

ファイルFile.SetAttributes("C:\\myFile.txt", FileAttributes.ReadOnly);を読み取り専用に設定した場合、必要に応じて読み取り/書き込みに戻すにはどうすればよいですか?

FileAttributes.Normalしかし、これによりファイルの他のプロパティが変更されるのでしょうか? MSDN サイトには非常に説明的なメモはありません...

ファイルは正常で、他の属性は設定されていません。この属性は、単独で使用する場合にのみ有効です。

ありがとう

4

3 に答える 3

51

属性だけを削除するにはReadOnly、次のようにします。

File.SetAttributes("C:\\myfile.txt", File.GetAttributes("C:\\myfile.txt") & ~FileAttributes.ReadOnly);

これにより属性が削除ReadOnlyされますが、ファイルに既に存在する他の属性は保持されます。

于 2011-11-10T14:48:43.740 に答える
18

File.SetAttributes は、ファイルのすべての属性を置き換えます。

属性を設定および削除する適切な方法は、最初に属性を取得し、変更を適用してから設定することです。

例えば

var attr = File.GetAttributes(path);

// set read-only
attr = attr | FileAttributes.ReadOnly;
File.SetAttributes(path, attr);

// unset read-only
attr = attr & ~FileAttributes.ReadOnly;
File.SetAttributes(path, attr);
于 2011-11-10T14:50:36.627 に答える