我正在开发一个VB.NET应用程序,我们将在公司网络上的用户登录时运行,这将设置用户的环境,这将包括开始菜单。
我有一种方法试图删除位于用户的Start Menu \ Programs文件夹(C:\ Users {user} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs)中的所有文件和文件夹,我们的环境是Windows 7。
Private Function deleteFolderFilesAndSubFolders(ByVal location As DirectoryInfo, Optional ByVal exclude As String = "") As Boolean
For Each f As DirectoryInfo In location.GetDirectories
For Each i As FileInfo In f.GetFiles
i.Delete()
Next
f.Delete()
Next
End Function
执行此方法时,我收到一个异常:
Access to the path 'Maintenance' is denied.
位于用户程序文件夹中的是3个标准应用程序,“管理工具”,“维护”和“启动”。我排除了启动目录,但希望删除其他两个。
任何人都可以指出我能够删除这些文件夹的正确方向,我不介意他们是否在每次登录时重新创建,我的脚本将在每次登录时运行,并且每次都会重新创建开始菜单
答案 0 :(得分:1)
只有当您的应用程序以管理员模式运行时,才能删除此文件夹,因为这是用户数据的重要组成部分。
因此,您的应用程序可以执行的唯一方法是以管理员模式运行请求:
How do I force my .NET application to run as administrator?
检查引发异常的文件夹,并检查其上的权限。