首页 / C# / 仅作用于C#中具有相同文件名结构的文件
仅作用于C#中具有相同文件名结构的文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了仅作用于C#中具有相同文件名结构的文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1513字,纯文字阅读大概需要3分钟。
内容图文
我有一个目录,正在监视要添加的文件.当添加文件时,我的程序会启动并处理文件内容.
但是,我有具有不同文件名结构的不同文件.该程序的目的是首先处理具有相同结构的所有文件,然后继续处理下一个等.这里是一个示例:
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文件,将这三个文件的内容解析为一个文件,完成后,移至该目录中的其余文件并执行相同的操作(创建一个新文件并从文件到一个新文件)
string[] files = Dir.Split('-');
string FilePostcode = files[0];
string FileIdentifier = files[1];
string currentLocation = FilePostcode + FileIdentifier;
但是我不太确定如何处理文件循环,因为在这种情况下,我只希望前三个具有相同的名称,然后再处理具有相同名称的下两个.
我希望这是有道理的…
提前致谢
解决方法:
您可以按所需的密钥对文件进行分组:
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#中具有相同文件名结构的文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。