Как удалить файл .sdf, созданный в DataDirectory - PullRequest
3 голосов
/ 01 июня 2011

Я создаю файл базы данных 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 ]

4 голосов
/ 01 июня 2011

|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 голос
/ 01 июня 2011

Если приложение развернуто по сети, вы можете использовать его, чтобы получить путь к каталогу данных

System.Deployment.Application.ApplicationDeployment.CurrentDeployment.DataDirectory

В противном случае вы можете использовать это

System.AppDomain.CurrentDomain.BaseDirectory
...