如何删除在DataDirectory中创建的.sdf文件

时间:2011-06-01 04:06:44

标签: c# sql-server-ce

我正在以编程方式创建一个SQL CE数据库文件,并希望确保每次都创建一个全新的,因此我添加了删除方法。由于每个数据库文件都是在DataDirectory中创建的,我还想删除DataDirectory中的文件,但它正在给我

“路径中的非法字符”错误

以下是我的代码:

/* illegal characters in path */
File.Delete("|DataDirectory|\\Foo2Database.sdf");

string connString = @"Data Source=|DataDirectory|\Foo2Database.sdf";
SqlCeEngine engine = new SqlCeEngine(connString);
engine.CreateDatabase();

2 个答案:

答案 0 :(得分:4)

|DataDirectory|是连接字符串表示法,与文件系统路径无关。

您可以使用以下代码删除文件:

 var directoryName = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
 var fileName = Path.Combine(directoryName, "Foo2Database.sdf");
 File.Delete(fileName);

如果您设置,则可以通过DataDirectory获取最新的AppDomain.CurrentDomain.GetData("DataDirectory");

如果你有asp.net DataDirectory默认为Server.MapPath("~/App_Data");

答案 1 :(得分:1)

如果应用程序是网络部署的,您可以使用它来获取数据目录的路径

System.Deployment.Application.ApplicationDeployment.CurrentDeployment.DataDirectory

否则你可以使用这个

System.AppDomain.CurrentDomain.BaseDirectory