代码之家  ›  专栏  ›  技术社区  ›  Torsten Marek

获取“应用程序数据”目录路径的最佳方法?

  •  12
  • Torsten Marek  · 技术社区  · 17 年前

    获取应用程序数据目录的路径有几种可能的方法:

    • 使用 %APPDATA% 环境变量
    • 使命感 SHGetFolderPath 具有 CSIDL_APPDATA

    从程序中获取路径的最佳方法是什么?当我使用环境变量时,有什么问题吗?

    在XP、Vista和即将推出的版本中,哪种方法最安全?

    5 回复  |  直到 17 年前
        1
  •  12
  •   Rob    17 年前

    我建议你打电话 SHGetFolderPath() 是最合适、最轻便的方法;其他选择,例如读取环境变量,或者(更糟的是)尝试从注册表中提取它,将来可能会让您陷入困境。

    Raymond Chen has an article 解释为什么从注册表中提取这样的路径是个坏主意。

        2
  •  12
  •   jMM    16 年前
        string appDataPath = 
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
    

    您需要使用GetFolderPath方法获取实际路径作为Environment.SpecialFolder.ApplicationData只是一个枚举。

        3
  •  0
  •   Jason Miesionczek    17 年前

    string appDataPath = Environment.SpecialFolder.ApplicationData;
    
        4
  •  0
  •   krawyoti    17 年前

    Python的一个重要区别是:对于unicode文件路径 ctypes.windll.shell32.SHGetFolderPathW 返回unicode字符串,而 os.environ['APPDATA'] 返回一个字节字符串。

        5
  •  0
  •   Brandon    14 年前

    appDataPath = ENV['APPDATA']