我正在以编程方式创建一个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();
答案 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