C# Mono上的测试文件权限

C# Mono上的测试文件权限,c#,mono,file-permissions,C#,Mono,File Permissions,我正在使用Mono开发跨平台应用程序。我想检查运行应用程序的用户的RW访问权限。在NT上我可以使用.GetAccessControl方法(在Mono上抛出PlatformNotSupported异常),但如何处理*nix和MacOS?有跨平台解决方案吗?试着打开RW的文件,看看是否成功 Mono.Unix具有特定于Unix的实现: var ufi = new UnixFileInfo("/tmp/test.cpp"); ufi.CanAccess(AccessModes.F_OK); // is

我正在使用Mono开发跨平台应用程序。我想检查运行应用程序的用户的RW访问权限。在NT上我可以使用.GetAccessControl方法(在Mono上抛出PlatformNotSupported异常),但如何处理*nix和MacOS?有跨平台解决方案吗?

试着打开RW的文件,看看是否成功

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
}
File.GetAttributes(路径)


信息不比
.GetAccessControl
,但您可以确定文件是否
ReadOnly

谢谢,实际上它比任何东西都简单。我会检查它是否适合我的箱子。谢谢。我假设它在Windows上无法工作,或者通过POSIX子系统是可能的?@Vikozz-MM不确定。你可以试试看。如果它不起作用的话,它应该仍然是公平的游戏,因为您显然发现
.GetAccessControl
在*NIX上不起作用。。。这可能与文件系统驱动程序有关(检查是否启用了(扩展的)文件属性?)