在部署基于文件的数据库应用程序时放置数据库文件的位置?

时间:2012-02-23 11:22:47

标签: database windows deployment

如果要部署使用基于文件的数据库(如SQLite或Access-MDB)的应用程序,应将数据库文件部署到计算机上的哪个位置,请记住应用程序需要完全访问此位置?

MS指南是否说%PROGRAMFILES%文件夹只应包含只读应用程序文件?

数据库文件应该放在哪里?在%APPDATA%文件夹中?

1 个答案:

答案 0 :(得分:1)

你绝对应该使用Program Files目录来存储动态信息。

此Windows博客User Account Control Data Redirection提供了一个很好的摘要:

  

确保在确定适当的位置后不对路径进行硬编码。而是,使用以下编程模型和API之一来检索特定Windows已知文件夹的正确路径:

     

C / C ++本机应用程序:使用SHGetKnownFolderPath函数检索由文件夹的KNOWNFOLDERID标识的已知文件夹的完整路径,这是一个GUID参数,指示您想要获取的已知位置:

     
      
  • FOLDERID_ProgramData - 所有用户的共享程序数据目录
  •   
  • FOLDERID_LocalAppData - 每用户程序数据目录(非漫游)
  •   
  • FOLDERID_RoamingAppData - 每用户程序数据目录(漫游)
  •   
     

托管代码:使用System.Environment.GetFolderPath函数。 GetFolderPath接受一个参数,指示您想要获得的已知位置:

     
      
  • Environment.SpecialFolder.CommonApplicationData - 所有用户的共享程序数据目录
  •   
  • Environment.SpecialFolder.LocalApplicationData - 每用户程序数据目录(非漫游)
  •   
  • Environment.SpecialFolder.ApplicationData - 每用户程序数据目录(漫游)
  •   
     

如果上述选项均不可用,请使用环境变量:

     
      
  • %ALLUSERSPROFILE% - 所有用户的共享程序数据目录
  •   
  • %LOCALAPPDATA% - 每用户程序数据目录(非漫游) - Windows Vista或更高版本
  •   
  • %APPDATA% - 每用户程序数据目录(漫游) - Windows Vista或更高版本
  •