C# 从临时文件夹中删除RAR文件?

C# 从临时文件夹中删除RAR文件?,c#,.net,C#,.net,我目前正在开发的工具,将删除我的临时文件夹中的东西,我已经使它删除文件,如文本文件和文件夹,但我如何使它删除RAR文件和JPG的等?可能吗 这是我当前的代码 private void Clear_Click(object sender, EventArgs e) { string tempPath = Path.GetTempPath(); DirectoryInfo di = new DirectoryInfo(tempPath); foreach (Director

我目前正在开发的工具,将删除我的临时文件夹中的东西,我已经使它删除文件,如文本文件和文件夹,但我如何使它删除RAR文件和JPG的等?可能吗

这是我当前的代码

private void Clear_Click(object sender, EventArgs e)
{
    string tempPath = Path.GetTempPath();
    DirectoryInfo di = new DirectoryInfo(tempPath);

    foreach (DirectoryInfo dir in di.GetDirectories())
    {
        try
        {
           dir.Delete(true);
        }
        catch (Exception)
        {
            // Log error.
            continue;
        }  
    }

    foreach (FileInfo file in di.GetFiles())
    {
        try
        {
            file.Delete();
        }
        catch (Exception)
        {
            // Log error.
            continue;
        }
    }
}

DirectoryInfo.GetFiles()
可以接受搜索模式参数

foreach (FileInfo file in di.GetFiles("*.jpg"))
{
    file.Delete();
}
这将删除扩展名为
.jpg
的任何文件。对于
.rar

或者,我建议创建一个方法来实现这一点

public void DeleteFiles(DirectoryInfo di, string searchPattern)
{
    foreach (FileInfo file in di.GetFiles(searchPattern))
    {
        file.Delete();
    }
}
一旦创建了它,你就可以这样做了

DeleteFiles(di, "*.jpg");
如果你有一个你需要的所有扩展的列表,你可以循环使用它们

string[] extentionList = new[] {"*.jpg", "*.rar", "*.bmp", "*.gif"};

foreach (string extension in extentionList)
{
    DeleteFiles(di, extension);
}

如果您将在许多地方使用此方法,那么将其转换为
DirectoryInfo
扩展方法将是最佳选择。

DirectoryInfo.GetFiles()可以接受搜索模式参数

foreach (FileInfo file in di.GetFiles("*.jpg"))
{
    file.Delete();
}
这将删除扩展名为
.jpg
的任何文件。对于
.rar

或者,我建议创建一个方法来实现这一点

public void DeleteFiles(DirectoryInfo di, string searchPattern)
{
    foreach (FileInfo file in di.GetFiles(searchPattern))
    {
        file.Delete();
    }
}
一旦创建了它,你就可以这样做了

DeleteFiles(di, "*.jpg");
如果你有一个你需要的所有扩展的列表,你可以循环使用它们

string[] extentionList = new[] {"*.jpg", "*.rar", "*.bmp", "*.gif"};

foreach (string extension in extentionList)
{
    DeleteFiles(di, extension);
}

如果您将在许多地方使用此方法,那么将其转换为
DirectoryInfo
扩展方法将是最佳选择。

上面的代码示例只是删除所有内容,其中也包括RAR文件……您是否收到任何错误?我不明白为什么这段代码只会挑出.txt文件和文件夹。上面的代码示例只是简单地删除所有内容,其中也包括RAR文件…您是否收到任何错误?我不明白为什么这段代码只会挑出.txt文件和文件夹。在您创建的方法中,我将如何实现扩展?例如.rar和.jpgOh我用扩展名创建字符串?@Alexander.Matt是的,只需使用本例中所示的字符串。@MattRowland最后一个问题,创建字符串时,我是否需要在扩展名中包含“.”?或者就像这个字符串jpg,png,rar;您需要
*
以及
。这表示搜索模式。如果您正在创建方法。您可以始终使方法连接您创建的方法中的
*。
如何实现扩展?例如.rar和.jpgOh我用扩展名创建字符串?@Alexander.Matt是的,只需使用本例中所示的字符串。@MattRowland最后一个问题,创建字符串时,我是否需要在扩展名中包含“.”?或者就像这个字符串jpg,png,rar;您需要
*
以及
。这表示搜索模式。如果您正在创建方法。您始终可以使方法连接
*。