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

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

示例连接字符串:

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

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

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

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

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

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

对于LocalDB和SqlConnection(不是CE):

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