我正在尝试从多个数据文件中读取和提取特定信息,其中每个文件的文件名格式都相同,我的文件格式是 XXXXXX_XXXXXX_PCPDTB_ODT.datafile,其中 X 是一个随机数字。
它在前 6 位数字中表示年、月、日,在后 6 个 X 中表示小时、分钟和秒,因此 131005_091429_PCPDTB_ODT.datafile 将是 2013 年、第 10 个月、第 5 天等等,_PCPDTB_ODT.datafile 始终存在。
我能够成功地从文件中收集我想要的数据(在某个关键字之后提取所有信息,在这种情况下,'#Footer' 是我的关键字),但我不确定如何处理这个问题具有几个变化整数的文件?
这是我的尝试(虽然这很糟糕,因为我对编码的经验很少),但似乎只是输入 4 位数字而已。仅允许访问 XXXX_PCPDTB_ODT.datafile 或 1304_PCPDTB_ODT.datafile 之类的文件。
static void Main(string[] args)
{
var path = @"C:\Users\#####\Desktop\";
var ext = "_PCPDTB_ODT.datafile";
var range = Enumerable.Range(0,9);
var filePaths =
from i1 in range
from i2 in range
from i3 in range
from i4 in range
let file = path + i1 + i2 + i3 + i4 + ext
where File.Exists(file)
select File.ReadLines(file)
.SkipWhile(line => !line.Contains("#Footer"))
.Skip(1);
try
{
Console.WriteLine(String.Join(Environment.NewLine,filePaths.SelectMany(f => f)));
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
Console.Read();
}
}
我尝试使用“_”添加更多 i 值、i5、i6、i7 等,以将前 6 位数字与后 6 位数字隔开,但是当使用超过 i4 的较大 i 值时,它似乎没有做任何事情。
任何想法都会有很大帮助,请记住我的编码很可能是垃圾,因为我目前的知识很少,谢谢。