问题
Hi I have to get files from a specified path in the directory. This is the method I wrote but I didn't get the files from the subfolders.
Private void getfiles(){
Directoryinfo info = new Directoryinfo(configurationmanager.appsettings["Targetroot"].tostring ());
if (info.exists){
Gvfiles.datasource = info.GetFiles();
Gvfiles.databind();
}
}
回答1:
You will want to include the SearchOption.AllDirectories.
Example:
info.GetFiles("*", SearchOption.AllDirectories);
Reference: http://msdn.microsoft.com/en-us/library/ms143327(v=vs.80).aspx
And: http://msdn.microsoft.com/en-us/library/ms143448(v=vs.80).aspx
回答2:
This returns an array of the (immediate) subdirectories:
System.IO.DirectoryInfo ParentDirectory = new System.IO.DirectoryInfo(ParentPath);
System.IO.DirectoryInfo[] DirectoryArr = ParentDirectory.GetDirectories();
I'm sure you can find a way to adapt it to your likings.
回答3:
DirectoryInfo info = new DrectoryInfo(configurationmanager.appsettings["Targetroot"].tostring ());
//FileInfo[] _files = info.GetFiles("You could set a search pattern");
//FileInfo[] _files = info.GetFiles("*.aspx");
FileInfo[] _files = info.GetFiles();
Gvfiles.datasource = _files;
Gvfiles.databind();
or:
DirectoryInfo info = new DirectoryInfo(Server.MapPath("/"));
DirectoryInfo[] _info = info.GetDirectories();
for (int i = 0; i < _info.Length; i++)
{
FileInfo[] files = _info[i].GetFiles("search pattern");
Gvfiles.datasource = files;
Gvfiles.databind();
}
回答4:
private List<String> DirSearch(string sDir)
{
List<String> files = new List<String>();
try
{
foreach (string f in Directory.GetFiles(sDir))
{
files.Add(f);
}
foreach (string d in Directory.GetDirectories(sDir))
{
files.AddRange(DirSearch(d));
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
return files;
}
来源:https://stackoverflow.com/questions/11775655/how-to-get-files-in-the-subfolders-too-from-directory