2011-09-09 43 views
1

我正在开发一个VB.NET应用程序,我们将在用户登录时运行我们的公司网络,这将设置用户的环境,这将包括开始菜单。删除用户中的文件夹开始菜单程序

我有一个方法试图删除位于用户的开始菜单\程序文件夹(C:\用户{用户} \应用程序数据\漫游\微软\ Windows \开始菜单\程序)中的所有文件和文件夹,我们环境是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级标准的应用程序,管理工具,维护和启动。我不包括启动目录,但希望将其他两个删除。

任何人都可以指向正确的方向,以便能够删除这些文件夹,我不介意它们是否在每次登录时重新创建,我的脚本将在每次登录时运行,并且每次都会重新创建开始菜单时间。

回答

1

只有当您的应用程序以管理员模式运行时,才能删除此文件夹,因为这是用户数据的重要组成部分。

所以,你的应用程序可以做的唯一途径是在管理员模式下运行的要求:

How do I force my .NET application to run as administrator?

检查其引发异常的文件夹,并检查它的权利。

+0

我已经让我的应用程序在app.manifest文件中的requireAdmin中运行,因为我们在公司网络中,因此我们禁用了UAC,并且不希望再惹恼我们的用户,我们必须这样做。有什么方法隐藏所有用户快捷方式吗? – Lima

+0

@Lima检查发生异常的文件夹,并检查其权限。 – VMAtm

相关问题