Jak mogę ustawić, aby plik Directory.GetFiles pokazywał mi tylko pliki zaczynające się od wartości numerycznej (np. 1abc.pdf);Directory.GetFiles: Pokaż tylko pliki zaczynające się od wartości numerycznej
Directory.GetFiles(@"C:/mydir", "0-9*.pdf")
Jak mogę ustawić, aby plik Directory.GetFiles pokazywał mi tylko pliki zaczynające się od wartości numerycznej (np. 1abc.pdf);Directory.GetFiles: Pokaż tylko pliki zaczynające się od wartości numerycznej
Directory.GetFiles(@"C:/mydir", "0-9*.pdf")
Aby uzyskać pliki, które zaczynają się żadnego wartość liczbową, niezależnie od liczby cyfr, można użyć wyrażenia regularnego:
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
Nie ma możliwości określenia tego bezpośrednio w wzorcu wyszukiwania. Jego możliwości są dość ograniczone (głównie obsługuje to wieloznacznik *
). Najlepszym sposobem osiągnięcia tego celu jest filtrowanie *.pdf
a następnie użyć kwerendy LINQ do filtrowania do tych, które zaczynają się od cyfry
Directory
.GetFiles(@"c:\mydir", "*.pdf")
.Where(x => Char.IsDigit(Path.GetFileName(x)[0]));
gdybym musiał włączać że do mojego "prawdziwego" wypowiedzi, która jest 'var currentPage = Directory.GetFiles (filePath, StartChar + "* .pdf") .Skip ((pageNum - 1) * pageSize) .Take (pageSize). Wybierz (ścieżka => nowa FileInfo (ścieżka)). ToArray(); '? Logika za to, że mam alfa pager (A, B, C ... itp. I link 0-9), dlatego chciałbym móc wybrać konkretny startchar (alfa lub numerycznie), który jest pokazany na liście . Powyższe działa dobrze tylko z alfa-znakami. – brother
To działa świetnie - thx! Masz pojęcie, w jaki sposób mogę włączyć to do jednego wyrażenia, które akceptuje zarówno alfa, jak i numeryczne wyszukiwanie. IE Mam następujące pracy w jednym 'var currentPage = Directory.GetFiles (filePath, startChar +" * .pdf "). Pomiń ((pageNum - 1) * pageSize) .Take (pageSize). Wybierz (ścieżka => nowy FileInfo (ścieżka)). ToArray(); '. Z tobą, gdzie dodano klauzulę 'var currentPage = Directory.GetFiles (filePath, startChar +" * .pdf "). Gdzie (file => Regex.IsMatch (Path.GetFileName (plik),"^[0-9] + ")) .Skip ((pageNum - 1) * pageSize) .Take (pageSize). Wybierz (ścieżka => nowa FileInfo (ścieżka)). ToArray(); '. – brother