文件属性及权限设置
在Winform中更新Access数据库时出现错误“操作必须使用一个可更新的查询。”,发现数据库文件具有只读属性,于是移除文件只读属性,更新数据库成功。
以下为操作所用代码:
//将 test.txt 设置成正常文件(移除只读、隐藏等属性)
System.IO.File.SetAttributes("test.txt", System.IO.FileAttributes.Normal);
顺便附上文件的权限设置方法(需添加引用System.IO;System.Security.AccessControl;)。
//添加对文件的访问控制(ACL)权限
public static void AddFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileSecurity fSecurity = File.GetAccessControl(fileName);
fSecurity.AddAccessRule(new FileSystemAccessRule(account,rights, controlType));
File.SetAccessControl(fileName, fSecurity);
}
//移除对文件的访问控制(ACL)权限
public static void RemoveFileSecurity(string fileName, string account,
FileSystemRights rights, AccessControlType controlType)
{
FileSecurity fSecurity = File.GetAccessControl(fileName);
fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,rights, controlType));
File.SetAccessControl(fileName, fSecurity);
}
调用:
//给everyone添加读取权限
AddFileSecurity("test.txt", "everyone", FileSystemRights.Read, AccessControlType.Allow);
//移除everyone的读取权限
RemoveFileSecurity("test.txt", "everyone", FileSystemRights.ReadData, AccessControlType.Allow);