如何给文件夹和文件添加“everyone”权限,并且将其设置为“完全控制”,我是这么写的,但是不知道为什么有的时候不好用,有的时候就好用,是不是跟机器有问题,请教各位,一下是我写的代码,各位有没有别的办法
public void AddEvy()
{
Hashtable ht = new Hashtable();
ht.Add("Web.config", "F");
ht.Add("map", "D");
ht.Add("pic", "D");
ht.Add("rth/App_Data/SysConfig.xml", "F");
ht.Add("rth/config/Menus.xml", "F");
ht.Add("rth/zwwh/Web.config", "F");
ht.Add("log", "D"); foreach (DictionaryEntry de in ht)
{
string s = System.Windows.Forms.Application.StartupPath+"\\"+de.Key.ToString();
if (de.Value.ToString() == "F")
{
if (!File.Exists(s))
{
File.Create(s);
}
}
else
{
if (!Directory.Exists(s))
{
Directory.CreateDirectory(s);
}
} if (de.Value.ToString() == "F")
{
AddDirectorySecurity("F", s, "Everyone", FileSystemRights.FullControl, AccessControlType.Allow);
}
else if (de.Value.ToString() == "D")
{
AddDirectorySecurity("D", s, "Everyone", FileSystemRights.FullControl, AccessControlType.Allow);
}
}
}
/// <summary>
/// 设置文件访问权限
/// </summary>
/// <param name="FileName"></param>
/// <param name="Account"></param>
/// <param name="Rights"></param>
/// <param name="ControlType"></param>
protected void AddDirectorySecurity(string t, string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
{
if (t == "F")
{
FileInfo fi = new FileInfo(FileName);
FileSecurity dSecurity = fi.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(Account, Rights, ControlType));
fi.SetAccessControl(dSecurity);
}
else
{
DirectoryInfo dInfo = new DirectoryInfo(FileName);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(Account, Rights, ControlType));
dInfo.SetAccessControl(dSecurity);
}
}
public void AddEvy()
{
Hashtable ht = new Hashtable();
ht.Add("Web.config", "F");
ht.Add("map", "D");
ht.Add("pic", "D");
ht.Add("rth/App_Data/SysConfig.xml", "F");
ht.Add("rth/config/Menus.xml", "F");
ht.Add("rth/zwwh/Web.config", "F");
ht.Add("log", "D"); foreach (DictionaryEntry de in ht)
{
string s = System.Windows.Forms.Application.StartupPath+"\\"+de.Key.ToString();
if (de.Value.ToString() == "F")
{
if (!File.Exists(s))
{
File.Create(s);
}
}
else
{
if (!Directory.Exists(s))
{
Directory.CreateDirectory(s);
}
} if (de.Value.ToString() == "F")
{
AddDirectorySecurity("F", s, "Everyone", FileSystemRights.FullControl, AccessControlType.Allow);
}
else if (de.Value.ToString() == "D")
{
AddDirectorySecurity("D", s, "Everyone", FileSystemRights.FullControl, AccessControlType.Allow);
}
}
}
/// <summary>
/// 设置文件访问权限
/// </summary>
/// <param name="FileName"></param>
/// <param name="Account"></param>
/// <param name="Rights"></param>
/// <param name="ControlType"></param>
protected void AddDirectorySecurity(string t, string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
{
if (t == "F")
{
FileInfo fi = new FileInfo(FileName);
FileSecurity dSecurity = fi.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(Account, Rights, ControlType));
fi.SetAccessControl(dSecurity);
}
else
{
DirectoryInfo dInfo = new DirectoryInfo(FileName);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(Account, Rights, ControlType));
dInfo.SetAccessControl(dSecurity);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货