var files = Directory.GetFiles("C:\Temp","Test*");
Exemplul acesta este la mintea cocosului. Dar sa vedem ce se intampa daca vrem toate fiserele cu extensia rar.var files = Directory.GetFiles("C:\Temp","*.rar");
In cazul in care directorul contine urmatoarele fisiere:1.rar
2.rar
3.exe
4.rar.tmp
5.rar1
Rezultatul returnat o sa contina urmatoarele fisiere:1.rar
2.rar
4.rar.tmp
5.rar1
Se pare ca avem o problema, ce cauta ultimele 2 fisiere in rezultat. Ne-am astepta sa fi avut ca rezultat doar 1.rar si 2.rar. Din capate in modul in care am facut noi cautarea, o sa ni se returneze orice fisere care incepe cu regula de cautare pe care noi am folosito. Rezultatul este clar nu cel asteptat.Cauza la acest comportament este urmatoarea: metoda GetFiles() apeleaza la randul ei API de Win32 (metoda FindNextFile). Iar din cauza ca Windows-ul are atat extensii scurte de 3 caractere cat si extensi lungi (8 caractere), rezultatul returnat este cel de mai sus.
O solutie la aceasta problema este sa verificam ca rezultatul returnat se termina cu extensia pe care noi am cautato.
var files = Directory.GetFiles("C:\Temp","*.rar")
.Where( x => x.EndsWIth("*.rar");