gpt4 book ai didi

c# - 仅作用于 C# 中具有相同文件名结构的文件

转载 作者:行者123 更新时间:2023-11-30 15:15:44 24 4
gpt4 key购买 nike

我有一个目录,我正在监视要添加的文件。添加文件时,我的程序会启动并处理文件的内容。但是,我有不同文件名结构的不同文件。该程序的目的是首先处理所有具有相同结构的文件,然后继续处理下一个文件等。这是一个示例:

BT424HH-4294967298-4294967301-201807021436.xml
BT424HH-4294967298-4294954545-201807034543.xml
BT424HH-4294967298-4294934543-201807028768.xml
BT424HH-4294955655-4294921321-201807065465.xml
BT424HH-4294955655-4294932422-201807023243.xml

在这种情况下,我有三个具有相同起始结构的文件:

BT424HH-4294967298

我想创建一个新的 XML 文件,将三个文件的内容解析为一个文件,完成后,继续目录中的其余文件并执行相同的操作(创建一个新文件并解析文件中的 xml 到新文件中)

 string[] files = Dir.Split('-');
string FilePostcode = files[0];
string FileIdentifier = files[1];
string currentLocation = FilePostcode + FileIdentifier;

但是我不太确定如何处理文件的循环,因为在这种情况下,我只想要前三个同名的文件,然后再处理下两个同名的文件。

我希望这是有道理的...

提前致谢

最佳答案

你可以Group你的文件By你想要的键:

public static string GetGroupIdentifier(string path)
{
var file = System.IO.Path.GetFileNameWithoutExtension(path);

// take only the first two parts
var id = string.Join("-", file.Split('-').Take(2));

return id;
}

public static void GroupFilesInFolder(string path)
{
foreach(var fileGroup in Directory.GetFiles(path, "*.xml").GroupBy(GetGroupIdentifier))
{
Console.WriteLine("For identifier " + fileGroup.Key);
foreach(var file in fileGroup)
{
Console.WriteLine(" - " + file);
}

// insert logic to merge the files for this key and do something with the result
}
}

关于c# - 仅作用于 C# 中具有相同文件名结构的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51726150/

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