欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#获取全部目录和文件的简单实例

程序员文章站 2024-02-13 23:30:52
复制代码 代码如下:public class fileaccess{ //储存所有文件夹名private arraylist dirs; public fileacce...

复制代码 代码如下:

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;
}
}