Directory.GetFiles: Show only files starting with a numeric value

前端 未结 2 1001
醉梦人生
醉梦人生 2020-12-19 07:56

How can i get the Directory.GetFiles to only show me files starting with a numeric value (eg. 1abc.pdf);

Directory.GetFiles(@\"C:/mydir\", \"0-9*.pdf\")


        
相关标签:
2条回答
  • 2020-12-19 08:22

    To get files that start with any numeric value, regardless of the number of digits, you could use a regular expression:

    var files = Directory.GetFiles(@"c:\mydir", "*.pdf")
                         .Where(file => Regex.IsMatch(Path.GetFileName(file), "^[0-9]+"));
                         //.ToArray() <-add if you want a string array instead of IEnumerable
    
    0 讨论(0)
  • 2020-12-19 08:35

    There is no way to specify this directly in the search pattern. It's capabilities are pretty limited (mainly supports the * wildcard). The best way to accomplish this is to filter on *.pdf and then use a LINQ query to filter to the ones that start with a digit

    Directory
      .GetFiles(@"c:\mydir", "*.pdf")
      .Where(x => Char.IsDigit(Path.GetFileName(x)[0]));
    
    0 讨论(0)
提交回复
热议问题