你好,我基本上试图在我的应用程序中创建一个可以删除我的%appdata%文件夹的按钮,但是有一个问题,它一直说无法删除只读文件,所以我决定做一些谷歌搜索但是问题仍然存在,无论如何,我的最新尝试仍然没有任何线索?
我尝试删除的是%appdata%/ test,它还包含子文件夹。
private void ClearButton_OnClick(object sender, RoutedEventArgs e)
{
string filepath = (Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "test"));
//Get Currently Applied Access Control
FileSecurity fileS = File.GetAccessControl(filepath);
//Update it, Grant Current User Full Control
SecurityIdentifier cu = WindowsIdentity.GetCurrent().User;
fileS.SetOwner(cu);
fileS.SetAccessRule(new FileSystemAccessRule(cu, FileSystemRights.FullControl, AccessControlType.Allow));
//Update the Access Control on the File
File.SetAccessControl(filepath, fileS);
//Delete the file
File.Delete(filepath);
Process.Start(Application.ResourceAssembly.Location);
Environment.Exit(0);
}
答案 0 :(得分:0)
如果你没有
,可能需要先取得所有权using System.IO;
using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;
//Get Currently Applied Access Control
FileSecurity fileS = File.GetAccessControl(filepath);
//Update it, Grant Current User Full Control
SecurityIdentifier cu = WindowsIdentity.GetCurrent().User;
fileS.SetOwner(cu);
fileS.SetAccessRule(new FileSystemAccessRule(cu, FileSystemRights.FullControl, AccessControlType.Allow));
//Update the Access Control on the File
File.SetAccessControl(filepath, fileS);
File.SetAttributes(filePath, FileAttributes.Normal);
File.Delete(filePath);
此外,您还需要使用管理权限运行应用程序。
为此,右键单击您的项目,添加 - > 新商品 - > 应用程序清单文件
然后替换此行
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
用这个
<requestedExecutionLevel level="requireAdministrator" uiAccess="true" />
它将以管理员权限运行您的应用程序。
答案 1 :(得分:0)
尝试使用管理权限运行应用程序。有时C驱动器需要管理员权限。