C#获取全部目录和文件的简单实例
public class fileaccess
{
//储存所有文件夹名
private arraylist dirs;
public fileaccess()
{
dirs = new arraylist();
}
//获取所有文件名
private arraylist getfilename(string dirpath)
{
arraylist list = new arraylist();
if (directory.exists(dirpath))
{
list.addrange(directory.getfiles(dirpath));
}
return list;
}
//获取所有文件夹及子文件夹
private void getdirs(string dirpath)
{
if (directory.getdirectories(dirpath).length > 0)
{
foreach (string path in directory.getdirectories(dirpath))
{
dirs.add(path);
getdirs(path);
}
}
}
/// <summary>
/// 获取给出文件夹及其子文件夹下的所有文件名
/// (文件名为路径加文件名及后缀,
/// 使用的时候getallfilename().toarray()方法可以转换成object数组
/// 之后再tostring()分别得到文件名)
/// </summary>
/// <param name="rootpath">文件夹根目录</param>
/// <returns></returns>
public arraylist getallfilename(string rootpath)
{
dirs.add(rootpath);
getdirs(rootpath);
object[] alldir = dirs.toarray();
arraylist list = new arraylist();
foreach (object o in alldir)
{
list.addrange(getfilename(o.tostring()));
}
return list;
}
/// <summary>
/// 如果上个方法不知道怎么用,那就调用这个方法吧
/// </summary>
/// <param name="rootpath"></param>
/// <returns></returns>
public list<string> filename(string rootpath)
{
list<string> list = new list<string>();
foreach (object o in getallfilename(rootpath).toarray())
{
list.add(o.tostring());
}
return list;
}
}