如何使用 C# 从 Windows Temp 文件夹中删除所有文件? (进程运行时)

Posted

技术标签:

【中文标题】如何使用 C# 从 Windows Temp 文件夹中删除所有文件? (进程运行时)【英文标题】:How do you delete all files from the windows Temp folder using C#? (When the processes are running) 【发布时间】:2021-12-04 05:02:50 【问题描述】:
private void Clean_btn_Click(object sender, EventArgs e)

    Process processes = new Process();

    var temp_path = @"C:\Windows\Temp";
    var temp_files = Directory.GetDirectories(temp_path, "*.*", SearchOption.AllDirectories);
    foreach (var temp_file in temp_files)
    
        Process.GetProcesses();
        processes.Kill();
        File.Delete(temp_file);
    

我正在尝试从 Windows 的 Temp 文件夹中删除所有文件和文件夹。但它会抛出进程正在运行的错误。

【问题讨论】:

我似乎不是一个好主意。即使有可能,杀死进程只是为了删除他们自己工作所需的文件似乎是系统崩溃的正确途径。这样做的原因是什么? 这听起来像XY problem。你真正想做什么? 只是好奇——如果您编写了一个需要使用临时文件夹中文件的应用程序,而其他一些应用程序出现并在您的应用程序仍在尝试使用它们时删除了它们,您会怎么做?首先想到的是? 【参考方案1】:

这很可能是不可能的。删除正在运行的进程也可能会终止 C++,因此您的脚本将无法运行。

【讨论】:

以上是关于如何使用 C# 从 Windows Temp 文件夹中删除所有文件? (进程运行时)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Windows Mobile 上的 C# 文件中获取修改日期?

如何在 C# 中执行命令行

如何从 C# 动态运行 SQL Server CE [Windows mobile] 中的 SQL 脚本文件?

如何从 URL 读取 Windows 应用程序中的大量 xml 文件(从 Windows 应用程序到服务器的多个请求)c#

使用 void 指针将字符串从 C++ 传递到 C#

如何在 C# 中读取和解析 XML 文件?