在特定目录中,检查哪些文件具有特定名称前缀并删除相同的前缀

时间:2019-05-02 01:54:42

标签: c# console-application

在此文件夹中,我有.OK文件和.text文件,我必须按特定顺序重命名包含此前缀('error_')但这些文件的文件,首先删除.text文件的前缀,然后删除我所有.OK文件的前缀,按此特定顺序。

下面的这段代码部分解决了我的问题,但是它将立即用所有包含“ Error_”前缀的文件替换为“”。

String longNumber = sc.next()

3 个答案:

答案 0 :(得分:0)

以下代码只会重命名扩展名为.OK和.text的文件,如果您想按顺序进行操作,则对于每个“ if”条件,您可能会有两个for循环:

        DirectoryInfo d = new DirectoryInfo(@"C:\MyPath");
        FileInfo[] infos = d.GetFiles();
        foreach (FileInfo f in infos)
        {
            if (f.FullName.EndsWith(".OK") || f.FullName.EndsWith(".text"))
                File.Move(f.FullName, f.FullName.Replace("Error_", ""));
        }

答案 1 :(得分:0)

您可以轻松移动文件。首先删除具有相同名称的文件

export =

答案 2 :(得分:0)

如果需要在.txt文件之前更改.OK文件,则可以在foreach循环中对FileInfo[]数据进行排序

DirectoryInfo di = new DirectoryInfo(@"D:\temp");

FileInfo[] fileInfos = di.GetFiles();
foreach(var f in fileInfos.OrderByDescending(f => f.Extension))
{
    Console.WriteLine(f.FullName);
}

这将首先遍历.txt文件,然后遍历'OK文件。

如果您想更加具体,则可以使用Where对其进行过滤:

FileInfo[] fileInfos = di.GetFiles();
foreach(var f in fileInfos.Where(f => f.Extension == ".txt"))
{
    Console.WriteLine(f.FullName);
}

您可以重构该代码以使其可用于不同的扩展名:-)