gpt4 book ai didi

c# - 如何以编程方式删除文件?

转载 作者:太空狗 更新时间:2023-10-29 23:06:30 25 4
gpt4 key购买 nike

这是我用来关闭我的应用程序及其相关进程并删除在使用该应用程序期间提取的所有文件的代码:

private void Quit_Click(object sender, RoutedEventArgs e) //close the application
{
//kill cinector after all import is done
Process[] processes = Process.GetProcesses();
for (int i = 0; i < processes.Count(); i++)
{
if (processes[i].ProcessName.ToLower().Contains("CinectorProcess"))
{
processes[i].Kill();
}
}

//also kill powerpoint just in case

for (int i = 0; i < processes.Count(); i++)
{
if (processes[i].ProcessName.ToLower().Contains("powerpnt"))
{
processes[i].Kill();
}
}

//kill the engine
ShutdownEngine();

//kill the main app
App.Current.Shutdown();

//also delete all three folders

//slides_png_prev
if (Directory.Exists(slides_png_prev))
{
Thumbnails = null;
Directory.Delete(slides_png_prev, true);
}

//slides_png
if (Directory.Exists(slides_png))
{
Directory.Delete(slides_png, true);
}

//slides_png_prev_seleect
if (Directory.Exists(slides_png_prev_seleect))
{
Directory.Delete(slides_png_prev_seleect, true);
}
}

但是,问题是当它尝试删除文件(应用程序中某处使用的图像)时,它显示以下异常:

"The process cannot access the file because it is being used by another process."

更新:我发现“Mastersolution.vhost.exe”进程包含我试图删除的所有文件。 Mastersolution 实际上是我在 App.Current.Shutdown(); 行上关闭的主应用程序,因此我需要在删除文件之前以某种方式断开文件与主应用程序的连接。但是要这样做吗?

最佳答案

将您的文件存储在一个临时目录中,让操作系统处理它。

参见 Path.GetTempPathPath.GetTempFileName .

关于c# - 如何以编程方式删除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32329918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com