xp系统,系统盘下有个文件夹 C:\test\ff ,右击文件夹查看她的安全属性,里面只有一个用户组Everyone,拥有"完全控制权限"。1. 我手动删除这个文件夹,可以删除;
2. 我写程序删除这个文件夹,提示"访问被拒绝".我在代码里已经给这个文件夹 把我当前用户的FullConcole权限添加上了,还是不行,怎么解决?
2. 我写程序删除这个文件夹,提示"访问被拒绝".我在代码里已经给这个文件夹 把我当前用户的FullConcole权限添加上了,还是不行,怎么解决?
在Windows中可以递归删除里面的文件再删除文件夹。
如果你用Directory.Delete删除就不允许删除了。
private void SetAttributes(string folder)
{
if (folder == "" || !Directory.Exists(folder))
{
return;
}
DirectoryInfo folderInfo = new DirectoryInfo(folder); //添加当前用户权限
string curUser = Environment.UserDomainName.ToString() + "\\" + Environment.UserName.ToString();
DirectorySecurity tmpSec = folderInfo.GetAccessControl();
tmpSec.SetAccessRule(new FileSystemAccessRule(curUser, FileSystemRights.Modify, AccessControlType.Allow)); //设置文件权限
FileInfo[] fileInfos = folderInfo.GetFiles();
if (fileInfos != null && fileInfos.Length > 0)
{
foreach (FileInfo fileInfo in fileInfos)
{
FileSecurity tmpFilesec = fileInfo.GetAccessControl();
tmpFilesec.SetAccessRule(new FileSystemAccessRule(curUser, FileSystemRights.Modify, AccessControlType.Allow));
fileInfo.Attributes = FileAttributes.Normal;
}
}
//递归
DirectoryInfo[] folderInfos = folderInfo.GetDirectories();
if (folderInfos != null && folderInfos.Length > 0)
{
foreach (DirectoryInfo childFolderInfo in folderInfos)
{
this.SetAttributes(childFolderInfo.FullName);
}
}
}然后再 Directory.Delete(folder, true)