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")
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")
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
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]));
var currentPage = Directory.GetFiles(filePath, startChar + "*.pdf").Skip((pageNum - 1) * pageSize).Take(pageSize).Select(path => new FileInfo(path)).ToArray();
? The logic behind is that i have a alpha pager (A, B, C.. etc and a 0-9 link also) hence i would like to be able to select the specific startchar (alpha or numeric) that is shown in the list. The above works fine with alpha chars only. –
Impanel © 2022 - 2024 — McMap. All rights reserved.
var currentPage = Directory.GetFiles(filePath, startChar + "*.pdf").Skip((pageNum - 1) * pageSize).Take(pageSize).Select(path => new FileInfo(path)).ToArray();
. With you where clause addedvar currentPage = Directory.GetFiles(filePath, startChar + "*.pdf").Where(file => Regex.IsMatch(Path.GetFileName(file), "^[0-9]+")).Skip((pageNum - 1) * pageSize).Take(pageSize).Select(path => new FileInfo(path)).ToArray();
. – Impanel