像“65536”代表 FileSystemRights 中的“洗掉”。那么“269681087”在 FileSystemRights 中代表什么?
謝謝!
已閱讀: https ://learn.microsoft.com/zh-tw/dotnet/api/system.security.accesscontrol.filesystemrights?view=net-6.0
uj5u.com熱心網友回復:
該值應該是來自該FileSystemRights列舉的標志的組合。
例如FileSystemRights.ReadData | FileSystemRights.WriteData
,允許讀取和寫入資料。那|
是按位或運算子。
測驗特定值的代碼:
var val = (System.Security.AccessControl.FileSystemRights)269681087;
foreach(FileSystemRights fsr in Enum.GetValues(typeof(FileSystemRights)))
{
if ((val & fsr) == fsr)
{
Console.WriteLine($"{fsr} (0x{(int)fsr:X} = {(int)fsr})");
}
}
這給出了一個值串列,其中有一些明顯的重復項。原因是,例如 AppendData 和 CreateDirectories 共享相同的基礎值 (4),因此 ToString(隱含在其中{fsr}
)無法區分它們并選擇第一個匹配的文本值。
ReadData (0x1 = 1)
ReadData (0x1 = 1) = ListDirectory
CreateFiles (0x2 = 2)
CreateFiles (0x2 = 2) = WriteData
AppendData (0x4 = 4)
AppendData (0x4 = 4) = CreateDirectories
ReadExtendedAttributes (0x8 = 8)
WriteExtendedAttributes ( 0x10 = 16)
ExecuteFile (0x20 = 32)
ExecuteFile (0x20 = 32) = Traverse
ReadAttributes (0x80 = 128)
WriteAttributes (0x100 = 256)
Write (0x116 = 278)
Delete (0x10000 = 65536)
ReadPermissions (0x20000 = 131072)
Read( 0x20089 = 131209)
ReadAndExecute (0x200A9 = 131241)
修改 (0x301BF = 197055)
同步 (0x100000 = 1048576)
但即便如此,當我結合所有匹配的值時,我不會得到你的原始值:值 0x1000_0000 下落不明。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526106.html
標籤:文件