我创建了C#应用程序,它在桌面上创建了一个图像文件。它在XP和Vista(管理员帐户)上运行良好,但无法在Vista(标准帐户)的桌面上创建图像文件。
我是否必须在应用程序中包含清单文件才能正常工作? 如果我添加清单,它会在XP上运行没有任何问题吗?
对不起,如果这是蹩脚的问题。 提前谢谢。
答案 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)
答案 5 :(得分:0)
在您的应用程序的目录中,授予用户获取所有权和删除权限。这涉及单击“安全”选项卡中的“高级”按钮。应用更改后,文件IO应该可以正常工作。
答案 6 :(得分:0)
仅在尝试在C:\ Program Files ...等系统目录中执行文件IO时才需要我的建议。