【问题标题】:Where should a Windows application's working files be written?Windows 应用程序的工作文件应该写在哪里?
【发布时间】:2009-11-14 20:25:39
【问题描述】:

如果您有一个 Windows 应用程序需要写入工作文件作为其正常操作的一部分(用户未提示):

  • 应将它们写入文件系统的哪个位置?
  • 在 .NET 中为所有 Windows 版本 (XP/V/7/Server) 获取此目录的正确方法是什么?

(写入与可执行文件相同的目录或“临时”目录不适合我的具体情况。)

【问题讨论】:

    标签: c# .net windows file


    【解决方案1】:

    最常见的地方是:

    string path = Environment.GetFolderPath(
          Environment.SpecialFolder.ApplicationData);
    

    但 Environment.SpecialFolder 的其他值可能有用。当然还有用户的Documents 文件夹。

    你说你不想要临时文件,但如果你在 1 个会话中需要它,

     string path = System.IO.Path.GetTempFileName();
    

    可能非常有用。

    【讨论】:

      【解决方案2】:

      另一个选项是Isolated Storage (Intro。) 它可以用于每个组件、每个机器、每个用户以及以上的任意组合。

      【讨论】:

        【解决方案3】:

        这个问题之前在 Stackoverflow 上已经被询问和回答过。检查以下两个问题:

        My winform app uses xml files to store data, where should I store them so Vista users can write to them?

        Windows Standard File Locations

        【讨论】:

          【解决方案4】:

          Environment.SpecialFolder.LocalApplicationData 将是 .NET 的实现方式。

          【讨论】:

            【解决方案5】:

            是的,在 AppData 下(通常是 %APPDATA%\[company name]\[application name] -- %APPDATA% 的位置在 XP 和 Vista/7 之间是不同的,所以一定要使用抽象层,不要' t 硬编码路径)是标准位置。请,请,请,请不要将它们放在 Program Files 下的任何位置。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-03-19
              • 2017-06-06
              • 1970-01-01
              • 1970-01-01
              • 2020-04-18
              相关资源
              最近更新 更多