c# - Get all files except files in hidden directories? -


i want create list of files in directory, except hidden fies , files inside hidden folder in directory. used method,

new directoryinfo(path).getfiles("*.*", searchoption.alldirectories)                      .where(f => (f.attributes & fileattributes.hidden) == 0) 

but above method return files inside hidden folders. there other way without recursively iterating through directories?

one way without "manually iterating" following:

var dirinfo = new directoryinfo(path); var hiddenfolders = dirinfo.getdirectories("*", searchoption.alldirectories)     .where(d => (d.attributes & fileattributes.hidden) != 0)     .select(d => d.fullname);  var files = dirinfo.getfiles("*.*", searchoption.alldirectories)     .where(f => (f.attributes & fileattributes.hidden) == 0 &&          !hiddenfolders.any(d => f.fullname.startswith(d))); 

but iterating whole directory tree twice , has .any-overhead every file => use @catburry's solution has better performance , easier maintain imo...


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -