C# - 从连接字符串获取文件路径

时间:2011-08-04 13:06:16

标签: c# sql-server-ce connection-string

C#中是否有现有方法从表示ConnectionStringSqlCE .sdf 文件的字符串中提取文件路径?我想检查文件是否在初始化时存在,如果文件已被修改则备份它。

示例连接字符串:

strConn = "Data Source=|DataDirectory|\dbAlias.sdf";

4 个答案:

答案 0 :(得分:6)

您可以使用SqlCeConnectionStringBuilder类来解析现有的Sql Compact连接字符串。

答案 1 :(得分:5)

您可以创建连接并从中获取数据源作为属性:

string data;
using (var conn = new SqlConnection(connectionString)) {
    data = conn.DataSource;
}

答案 2 :(得分:5)

也许有点晚了,但是我遇到了这个问题,并且在努力解决同样的问题。您可以使用|DataDirectory|找到AppDomain.CurrentDomain.GetData("DataDirectory")文件夹的位置。所以你的connectionstring可以像这样翻译:

strConn .Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString())

答案 3 :(得分:0)

对于LocalDB和SqlConnection(不是CE):

public static string GetFilePathFromConnectionString(string connectionString)
{
    var attachDbFileName = new SqlConnectionStringBuilder(connectionString).AttachDBFilename;
    return attachDbFileName.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString());
}