标准帐户(Vista)中的文件创建失败

时间:2009-06-04 10:42:20

标签: c# file windows-vista windows-xp

我创建了C#应用程序,它在桌面上创建了一个图像文件。它在XP和Vista(管理员帐户)上运行良好,但无法在Vista(标准帐户)的桌面上创建图像文件。

我是否必须在应用程序中包含清单文件才能正常工作? 如果我添加清单,它会在XP上运行没有任何问题吗?

对不起,如果这是蹩脚的问题。 提前谢谢。

7 个答案:

答案 0 :(得分:5)

确保您使用System.Environment.SpecialFolder类告诉您用户桌面的确实位置。

答案 1 :(得分:2)

您要在哪个文件夹中创建文件?共享桌面文件夹或用户的桌面文件夹?普通用户无法创建共享桌面文件。

您应该写入由以下注册表值指定的文件夹:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop

答案 2 :(得分:0)

要回答您的第一个问题,在没有任何有关代码和生成错误的详细信息的情况下,听起来标准帐户没有在桌面上创建文件的权限。

使用标准帐户登录后,您可以手动执行此操作吗?我没有安装Vista,所以我无法检查自己。

答案 3 :(得分:0)

在桌面上创建文件应该没有问题。但是,该桌面现在可能具有不同的位置。您是否真的尝试在Vista桌面上创建文件,或者您是否还在尝试使用XP中的路径创建文件?你能将你的代码提炼成20行的例子吗?

答案 4 :(得分:0)

我敢打赌这是访问权限。 Vista UAC出现并要求获得许可可能是一件好事。

检查此链接以了解如何获取UAC:

Demand UAC elevation for an application

答案 5 :(得分:0)

在您的应用程序的目录中,授予用户获取所有权和删除权限。这涉及单击“安全”选项卡中的“高级”按钮。应用更改后,文件IO应该可以正常工作。

答案 6 :(得分:0)

仅在尝试在C:\ Program Files ...等系统目录中执行文件IO时才需要我的建议。