我目前正在(最近打开的文件)文件夹中删除所有文件,但没有运气,我得到了消息:“拒绝访问路径'C:\ Users \ User \ Recent'。”。我一直在四处寻找是否有任何解决方案,但遗憾的是我找不到任何东西。
String recent = Environment.ExpandEnvironmentVariables("%USERPROFILE%") + "\\Recent";
EmptyFolderContents(recent);
private void EmptyFolderContents(string folderName)
{
foreach (var Folder in Directory.GetDirectories(folderName))
{
try
{
Directory.Delete(Folder, true);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
foreach (var Files in Directory.GetFiles(folderName))
{
try
{
File.Delete(Files);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
}
}
答案 0 :(得分:1)
您的错误消息似乎表明您错过了反斜杠:
拒绝访问路径'C:Users \ User \ Recent'。
(在C:之后)
答案 1 :(得分:1)
您获得“拒绝访问”错误的原因是您不能只删除该文件夹中的文件。它们是真实文件的虚拟路径。可能有更好的方法来做你正在做的事情。
以下是我找到here的替代方案。它使用WinAPI,它永远不会有趣,但它可以工作。
//you'll need to add this.
using System.Runtime.InteropServices;
[DllImport("shell32.dll")]
public static extern void SHAddToRecentDocs(ShellAddToRecentDocsFlags flag, IntPtr pidl);
public enum ShellAddToRecentDocsFlags
{
Pidl = 0x001,
Path = 0x002,
}
//then call this from your method
SHAddToRecentDocs(ShellAddToRecentDocsFlags.Pidl, IntPtr.Zero);
答案 2 :(得分:0)
我使用权限Time Machine v1.1恢复默认权限并删除文件夹或文件或注册表项或Windows服务或wmi对象的“访问被拒绝”消息,它是免费且快速且简单的
从amyd projects blog下载