36

Read Onlyファイルを表示しているときにチェックボックスが表示されるフラグを設定しようとしright click \ Propertiesています。

ありがとう!

4

3 に答える 3

66

ふたつのやり方:

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);

IsReadOnlyプロパティは、FileInfo基本的に、2番目の方法で手動で実行する必要があるビットフリッピングを実行します。

于 2009-07-29T18:09:38.040 に答える
37

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

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と、その過程で他のフラグが失われる可能性があります。

于 2009-07-29T18:23:10.397 に答える
1

C#:

File.SetAttributes(filePath, FileAttributes.Normal);

File.SetAttributes(filePath, FileAttributes.ReadOnly);
于 2009-07-29T18:09:10.180 に答える