什么保证文件写入位置可用?

时间:2013-09-25 19:21:13

标签: c# .net-4.5

在本地系统上,是否有(合理)保证创建目录结构来写文件的地方?我正在寻找一种不需要管理权限进行权限更改的解决方案吗?

经过一番研究后,我看到了this找回当前用户桌面文件夹的答案。我可以使用它,但还有哪些其他选项?

整理研究

System.Environment.SpecialFolder枚举

3 个答案:

答案 0 :(得分:6)

考虑使用隔离存储类。

隔离存储为您提供与给定用户程序集相关联的存储位置;它适用于不完全信任的环境,它可以使用漫游来保持用户的数据,即使在不同的机器上也是如此。参见

http://msdn.microsoft.com/en-us/library/System.IO.IsolatedStorage.aspx

了解详情。

答案 1 :(得分:3)

特殊文件夹实际上是特殊的,因为可以合理地保证它们存在。

没有其他文件夹有这样的保证。即使C:\也不能得到保证(尽管它很可能出现在绝大多数Windows系统上)。

ApplicationData下的自定义文件夹是为给定用户编写特定于应用程序的数据的常用位置,或者是CommonApplicationData,以便在系统上的所有用户之间共享应用程序数据。

在实施漫游的环境中(用户的数据随他而来,无论他登录哪个物理服务器),ApplicationData都会跟随用户。如果您不希望出现这种情况,可以改用LocalApplicationData

答案 2 :(得分:2)

AppData路径可能就是您想要的。 Windows XP +中的此文件夹可以用

引用
string folder = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);

通常,应用程序在此下创建一个子文件夹来存储其数据,并且不需要任何特殊的读/写权限。