我正在开发ac#应用程序,后端为sqlite。在我的应用程序中,我有一个用于清理databse的选项。它意味着curren.db文件将使用File.Delete方法删除,并再次创建使用File.create方法清空数据库。现在让我解释一下这个问题。文件正在被其他进程使用
要执行cleandatabse任务,我必须停止正在运行的所有进程,这样做后,如果我点击干净的数据库它是抛出一个错误,该文件无法删除,它正在被另一个process.i使用停止正在运行的所有线程。
不知怎的,我能够找到哪个进程blocikng文件,
foreach (var process in Process.GetProcesses()) {
var files = GetFilesLockedBy(process);
if (files.Contains(filePath))
{
procs.Add(process);
Console.WriteLine(process.ProcessName);
process.Kill();
File.Delete(filePath);
}
}
但在上面的代码中,我用process.Kill,其中关闭,我正在运行的窗口形式。 没有使用杀,我试图关闭和处置哪些不适合我。
你能帮我从流程中释放文件而不关闭应用程序,然后你删除数据库文件。
预先感谢您
问候
桑吉塔。
@ user703526 - 为什么不简单地删除数据库的内容而不是数据库文件本身。 –