以编程方式检索 VB.NET 中的完整数据目录路径
Programatically retrieve the full data directory path in VB.NET
我正在开发一个 VB.NET / WPF
应用程序,它将使用 SQL Compact Edition
个数据库。
应用程序应允许用户保存和加载不同版本的数据库。
为此,我的目的是要有一个标准的数据库名称(例如 myDatabase.sdf),该名称将保存在 DataDirectory
.
中
然后用户可以选择保存当前数据的一个版本(将其命名为他们想要的名称,例如 savedDatabase1.sdf),然后应用程序将从 DataDirectory
中获取数据库的副本并将其保存到另一个位置(例如 SavedDatabase folder created in the Windows app data area
)
要加载不同版本的数据库,应用程序可以从 SavedDatabase 文件夹复制数据库并覆盖 DataDirectory
位置的数据库。
我可以看到覆盖数据目录位置的解决方案,但我找不到任何代码可以让您检索当前数据目录文件夹的路径,以便它可以在任何文件中使用如上所述复制活动。
所以我的问题是 - 如何以编程方式检索当前用作数据目录的完整路径?
您可以将所有数据保存在与应用程序相同的文件夹中:
System.AppDomain.CurrentDomain.BaseDirectory
但是,如果您不确定是否有权访问该文件夹,您可以随时写入为此制作的应用程序数据:
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
然后在此位置您可以创建自己的应用程序目录,然后创建您的子目录。
简单的例子是:
Dim DataPath as String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "/MyApplication/Data/"
connectionString="Data source=|" & DataPath &"myDatabase.sdf;"
我正在开发一个 VB.NET / WPF
应用程序,它将使用 SQL Compact Edition
个数据库。
应用程序应允许用户保存和加载不同版本的数据库。
为此,我的目的是要有一个标准的数据库名称(例如 myDatabase.sdf),该名称将保存在 DataDirectory
.
然后用户可以选择保存当前数据的一个版本(将其命名为他们想要的名称,例如 savedDatabase1.sdf),然后应用程序将从 DataDirectory
中获取数据库的副本并将其保存到另一个位置(例如 SavedDatabase folder created in the Windows app data area
)
要加载不同版本的数据库,应用程序可以从 SavedDatabase 文件夹复制数据库并覆盖 DataDirectory
位置的数据库。
我可以看到覆盖数据目录位置的解决方案,但我找不到任何代码可以让您检索当前数据目录文件夹的路径,以便它可以在任何文件中使用如上所述复制活动。
所以我的问题是 - 如何以编程方式检索当前用作数据目录的完整路径?
您可以将所有数据保存在与应用程序相同的文件夹中:
System.AppDomain.CurrentDomain.BaseDirectory
但是,如果您不确定是否有权访问该文件夹,您可以随时写入为此制作的应用程序数据:
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
然后在此位置您可以创建自己的应用程序目录,然后创建您的子目录。
简单的例子是:
Dim DataPath as String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "/MyApplication/Data/"
connectionString="Data source=|" & DataPath &"myDatabase.sdf;"