【发布时间】:2014-06-26 11:59:22
【问题描述】:
目前我正在编写一个应该访问C:\Windows\Temp 文件夹中的文件的应用程序。
当我尝试从我的代码中获取访问权限时,找不到该文件。
当我尝试在 Windows 资源管理器中打开该文件夹时,我收到一条消息。消息说:
您当前无权访问此文件夹,点击继续永久访问此文件夹。
点击Continue后问题消失,我可以从我的代码中访问该文件而没有任何麻烦。
是否可以通过代码实现相同的结果?或者也许有更好的地方来存储用户之间共享的临时文件。
在用户之间共享文件夹的动机:
我有以下工作流程:
- 创建数据库备份并将其存储在临时文件夹中
- 用数据库做一些事情
- 从临时文件夹中存储的文件中恢复 DB
第 1 步和第 3 步由数据库本身执行,第 2 步由我的程序执行。通常,我的程序是由数据库以外的另一个用户启动的。这就是为什么我需要在用户之间共享一个文件夹。
【问题讨论】:
-
“用户之间共享的临时文件”:这听起来是个很糟糕的主意,因为临时文件可以随时删除……你到底想做什么?
-
通常数据库更适合提供对数据的共享访问。
-
临时文件夹不保证为
c:\windows\temp。它的位置可以通过设置环境变量来改变。实际上,每个用户在他/她的个人资料文件夹中都有自己的临时文件夹。 -
@Panagiotis,我知道。这就是我使用以下代码的原因:
var directory = Environment.GetEnvironmentVariable("temp", EnvironmentVariableTarget.Machine); -
这就是 APPDATA 文件夹的用途。 TEMP 仅用于存储临时数据