目前我正在编写一个应该访问C:\Windows\Temp
文件夹中的文件的应用
当我尝试从我的代码访问时找不到该文件。
当我尝试在Windows资源管理器中打开文件夹时,我收到一条消息。消息说:
您目前无权访问此文件夹,请单击“继续”以永久访问此文件夹。
单击Continue
后问题消失,我可以从代码中访问该文件而不会有任何麻烦。
是否可以从代码中获得相同的结果?或者也许有一个更好的地方来存储用户之间共享的临时文件。
在用户文件夹之间共享的动机:
我有以下工作流程:
步骤1和3由DB本身执行,步骤2由我的程序执行。通常,我的程序由DB以外的其他用户启动。这就是我需要在用户之间共享文件夹的原因。
答案 0 :(得分:2)
你所描述的是一个坏主意,自Windows 95以来不鼓励。由于显而易见的原因,应用程序和普通用户不允许修改Windows文件夹。
Windows提供了用于存储应用程序数据的特定文件夹,每个用户或应用程序的所有用户都可以共享。它们在Environment.SpecialFolder枚举中定义。您可以使用Environment.GetFolderPath检索实际值。
使用此方法是获取正确路径位置的唯一方法,因为文件夹的位置可以通过环境变量,系统策略或用户首选项进行更改。
要获取每用户应用程序数据文件夹,请使用:
var userDataPath=Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
要获取所有用户共有的应用数据路径,请使用:
var dataPath=Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
确保在这些文件夹下为您的应用程序创建一个文件夹,以避免破坏其他应用程序使用的数据