【发布时间】:2009-11-14 20:25:39
【问题描述】:
如果您有一个 Windows 应用程序需要写入工作文件作为其正常操作的一部分(用户未提示):
- 应将它们写入文件系统的哪个位置?
- 在 .NET 中为所有 Windows 版本 (XP/V/7/Server) 获取此目录的正确方法是什么?
(写入与可执行文件相同的目录或“临时”目录不适合我的具体情况。)
【问题讨论】:
如果您有一个 Windows 应用程序需要写入工作文件作为其正常操作的一部分(用户未提示):
(写入与可执行文件相同的目录或“临时”目录不适合我的具体情况。)
【问题讨论】:
最常见的地方是:
string path = Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData);
但 Environment.SpecialFolder 的其他值可能有用。当然还有用户的Documents 文件夹。
你说你不想要临时文件,但如果你在 1 个会话中需要它,
string path = System.IO.Path.GetTempFileName();
可能非常有用。
【讨论】:
另一个选项是Isolated Storage (Intro。) 它可以用于每个组件、每个机器、每个用户以及以上的任意组合。
【讨论】:
这个问题之前在 Stackoverflow 上已经被询问和回答过。检查以下两个问题:
【讨论】:
Environment.SpecialFolder.LocalApplicationData 将是 .NET 的实现方式。
【讨论】:
是的,在 AppData 下(通常是 %APPDATA%\[company name]\[application name] -- %APPDATA% 的位置在 XP 和 Vista/7 之间是不同的,所以一定要使用抽象层,不要' t 硬编码路径)是标准位置。请,请,请,请不要将它们放在 Program Files 下的任何位置。
【讨论】: