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
Post a Comment