C# Mono上的测试文件权限
我正在使用Mono开发跨平台应用程序。我想检查运行应用程序的用户的RW访问权限。在NT上我可以使用.GetAccessControl方法(在Mono上抛出PlatformNotSupported异常),但如何处理*nix和MacOS?有跨平台解决方案吗?试着打开RW的文件,看看是否成功 Mono.Unix具有特定于Unix的实现: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
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上不起作用。。。这可能与文件系统驱动程序有关(检查是否启用了(扩展的)文件属性?)