第一次从代码访问Windows文件夹

目前我正在编写一个应该访问C:\Windows\Temp文件夹中的文件的应用程序。
当我尝试从我的代码访问时找不到该文件。

当我尝试在Windows资源pipe理器中打开文件夹时,我收到一条消息。 消息说:

您目前没有权限访问此文件夹,请单击继续以永久访问此文件夹。

单击“ Continue后问题消失,我可以从代码中访问该文件,而不会有任何麻烦。

是否有可能从代码中获得相同的结果? 或者,也许有更好的地方来存储用户之间共享的临时文件。

在用户文件夹之间共享的动机:

我有以下工作stream程:

  1. 创build数据库备份并将其存储在临时文件夹中
  2. 用数据库做一些事情
  3. 从存储在临时文件夹中的文件恢复数据库

步骤1和3由DB本身执行,步骤2由我的程序执行。 通常,我的程序是由另一个用户比数据库启动。 这就是为什么我需要在用户之间共享的文件夹。

你所描述的是一个坏主意,自Windows 95以来就不鼓励了。应用程序和普通用户不允许修改Windows文件夹,原因很明显。

Windows提供特定的文件夹来存储应用程序数据,无论是每个用户还是应用程序的所有用户共同使用。 它们在Environment.SpecialFolder枚举中定义。 您可以使用Environment.GetFolderPath检索实际值。

使用此方法是获取正确路径位置的唯一方法,因为文件夹的位置可以通过环境变量,系统策略或用户首选项进行更改。

要获取每个用户的应用程序数据文件夹,请使用:

 var userDataPath=Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

要获得所有用户共同使用的应用程序数据路径,请使用:

 var dataPath=Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 

确保在这些文件夹下为您的应用程序创建一个文件夹,以避免破坏其他应用程序使用的数据