如何带着所有的文件.flg ' Extension并把号码列在一个列表上

本文关键字:号码 列表 一个 何带着 文件 flg Extension | 更新日期: 2023-09-27 18:01:58

我在c:'MyData中有文件,例如:

demo.txt
test.ini
COUNT030.flg
COUNT011.flg
COUNT020.flg
COUNT031.flg
COUNT045.flg
COUNT067.flg

我需要把所有扩展名为.flg的文件,并把数字放在列表上,像这样:

30
11
20
31
45
67

如何在c# WinForm中做到这一点?

thanks in advance

如何带着所有的文件.flg ' Extension并把号码列在一个列表上

可以使用Directory.EnumerateFiles(String, String)Directory.GetFiles方法,掩码*.flg。然后使用Path.GetFileNameWithoutExtension提取无扩展名的file-name,然后应用regex 'd+$匹配number。

的例子:

var result = Directory
    .EnumerateFiles(path, "*.flg")
    .Select(s => int.Parse(Regex.Match(Path.GetFileNameWithoutExtension(s), @"'d+$").Value));

        DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
        var numbers = from fileInfo in dirInfo.EnumerateFiles("*.flg")
                      let fileName = Path.GetFileNameWithoutExtension(fileInfo.Name)
                      select int.Parse(fileName.Substring("Count".Length, 3));
        List<int> lst = numbers.ToList();

因此,正如示例所承诺的:

DirectoryInfo di = new DirectoryInfo(@"c:'temp'");
FileInfo[] fis = di.GetFiles("*.flg");
foreach (FileInfo fi in fis)
{
    Console.WriteLine("File Name: {0}, Full Name: {1}, Number: {2}", fi.Name, fi.FullName, fi.Name.Substring(fi.Name.LastIndexOf(".") - 3, 3));
}

要提取数字,请查看示例中的Substring。