C#vista不提供对create folder的访问权限

时间:2010-09-25 11:10:39

标签: c# windows-vista

在我的项目中,我必须在我的app文件夹中创建一些文件和目录,这些文件和目录是程序文件。但在Vista中,它给了我错误,我没有权限创建文件。 现在我应该怎样做才能获得访问权限?它也不让我访问注册表!!

3 个答案:

答案 0 :(得分:4)

程序文件夹不是存储应用程序数据的地方。有一个%APPDATA%文件夹 - 您应该将数据存储在那里。

使用System.Environment.SpecialFolderSystem.Environment.GetFolderPath获取指向正确目录的路径。

此外,您需要区分仅创建文件夹和在其中放置一些文件(例如在安装期间)或在运行时写入程序文件夹,同时通常在有限帐户下运行。

造成这种差异的原因很简单,安装例程和设置在Vista / Windows 7下以提升的权限运行,因此可以在那里创建文件夹和文件。 但是,这些文件不应该在应用程序的运行时写入

那么,你想做什么?在运行时写入数据,或者一次将一些文件(即依赖项)放在应用程序文件夹中?如果是第一个,请遵守规则并使用%APPDATA%文件夹。如果是第二个,请创建安装程序/设置例程。

答案 1 :(得分:1)

Vista和Win 7将Program Files文件夹锁定,因此您无法使用基本用户帐户写入该文件夹。如果您需要在那里创建文件夹,那么您应该在安装程序中执行此操作。否则,您可以在其配置文件中使用用户的Application Data文件夹。

唯一的另一种方法是在安装时修改安装文件夹的权限。

答案 2 :(得分:-2)

你可以关闭UAC吗?或以管理员身份登录?您可能在错误的位置创建文件夹。