0

我需要删除带有“.bak”和“.csv.bak”扩展名的文件。我使用.net c#。

我试过这样:

        string srcDir = @"D:\Backup";

        string[] bakList = Directory.GetFiles(srcDir,".bak");

        if (Directory.Exists(srcDir))
        {
            foreach (string f in bakList)
            {
                File.Delete(f);
            }
        }

但是在调试的时候,bakList 数组是空的。

Directory.GetFiles()没有加载数组中的文件名。我无法弄清楚我的编码有什么问题。

4

2 回答 2

2

您需要在输入之前*添加.bakGetFiles()

string srcDir = @"D:\Backup";
string[] bakList = Directory.GetFiles(srcDir,"*.bak");

if (Directory.Exists(srcDir))
{
    foreach (string f in bakList)
    {
        File.Delete(f);
    }
}

如果您需要搜索这两种类型,它可能会更好

var files = Directory.GetFiles(srcDir, "*.*")
            .Where(s => s.EndsWith(".bak"));
于 2013-02-27T07:14:54.970 回答
0

如果你的文件名是

“Data Logger[2].csv.bak”,转到属性并检查文件类型。会是这样的

"1 File (.1)" 文件以数字作为结尾扩展名。所以我就这样用了。

string[] bk = Directory.GetFiles(srcDir, " * .bak. * ");

foreach(bk 中的字符串 f){ File.Delete(f); }

它的工作...

于 2013-02-28T04:54:38.240 回答