我正在使用 Mono 开发跨平台应用程序。我想检查运行应用程序的用户的 RW 访问权限。在 NT 上我可以使用 .GetAccessControl 方法(在 Mono 上抛出 PlatformNotSupported 异常),但是如何处理 *nix 和 MacOS?有什么crossplatfrom的解决方案吗?
最佳答案
Mono.Unix 具有特定于 UNIX 的实现:
var ufi = new UnixFileInfo("/tmp/test.cpp");
ufi.CanAccess(AccessModes.F_OK); // is a file/directory
ufi.CanAccess(AccessModes.R_OK); // accessible for reading
ufi.CanAccess(AccessModes.W_OK); // accessible for writing
ufi.CanAccess(AccessModes.X_OK); // accessible for executing
FileSpecialAttributes sa = ufi.FileSpecialAttributes; //setuid, setgid and sticky bits
FileAccessPermissions fa = ufi.FileAccessPermissions;
FileAccessPermissions 定义为:
[Flags ()]
public enum FileAccessPermissions {
UserReadWriteExecute,
UserRead,
UserWrite,
UserExecute,
GroupReadWriteExecute,
GroupRead,
GroupWrite,
GroupExecute,
OtherReadWriteExecute,
OtherRead,
OtherWrite,
OtherExecute,
DefaultPermissions,
AllPermissions
}
关于c# - 在 Mono 上测试文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772930/