Reputation: 1591
I want to display all the files from a selected folder.. ie files from that folder and files from the subfolders which are in that selected folder.
example -
I have selected D:\Eg. Now I have some txt and pdf files in that. Also I have subfolders in that which also contain some pdf files. Now I want to display all those files in a data grid.
My code is
public void selectfolders(string filename)
{
FileInfo_Class fclass;
dirInfo = new DirectoryInfo(filename);
FileInfo[] info = dirInfo.GetFiles("*.*");
foreach (FileInfo f in info)
{
fclass = new FileInfo_Class();
fclass.Name = f.Name;
fclass.length = Convert.ToUInt32(f.Length);
fclass.DirectoryName = f.DirectoryName;
fclass.FullName = f.FullName;
fclass.Extension = f.Extension;
obcinfo.Add(fclass);
}
dataGrid1.DataContext = obcinfo;
}
What to do now?
Upvotes: 3
Views: 21963
Reputation: 6301
You should recursively select files from all subfolders.
public void selectfolders(string filename)
{
FileInfo_Class fclass;
DirectoryInfo dirInfo = new DirectoryInfo(filename);
FileInfo[] info = dirInfo.GetFiles("*.*");
foreach (FileInfo f in info)
{
fclass = new FileInfo_Class();
fclass.Name = f.Name;
fclass.length = Convert.ToUInt32(f.Length);
fclass.DirectoryName = f.DirectoryName;
fclass.FullName = f.FullName;
fclass.Extension = f.Extension;
obcinfo.Add(fclass);
}
DirectoryInfo[] subDirectories = dirInfo.GetDirectories();
foreach(DirectoryInfo directory in subDirectories)
{
selectfolders(directory.FullName);
}
}
Upvotes: 8
Reputation: 50104
Just use
FileInfo[] info = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
which will handle the recursion for you.
Upvotes: 14