以编程方式检索 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;"