using system;
using system.io;
using system.collections;
namespace dsclub
{
/**//// <summary>
/// dirlist 的摘要说明。
/// </summary>
public class dirlist
{
private string strinitfilepath;
private bool bfatchall;
// 构造函数
public dirlist()
{
bfatchall = false;
strinitfilepath = "c://";
}
public dirlist(string strfilepath)
{
bfatchall = false;
strinitfilepath = strfilepath;
}
// 是否递归出所有的文件
public bool recursionfiles
{
get
{
return bfatchall;
}
set
{
bfatchall = value;
}
}
// 取得文件的函数
public arraylist getfiles()
{
return getfiles(strinitfilepath, bfatchall);
}
public static arraylist getfiles(string strpath, bool resultsall)
{
arraylist al = new arraylist();
// 判断路径是否存在
if(!directory.exists(strpath))
{
throw(new applicationexception("访问的路径" + strpath + "不存在,或者它不是个文件夹。"));
}
string[] temp = directory.getfiles(strpath);
foreach(string afile in temp)
{
al.add(afile);
}
// 如果此目录下不存在文件,则把文件夹路径返回,并用///作标识
if(temp.length == 0)
{
al.add("///" + strpath);
}
if(resultsall)
{
temp = directory.getdirectories(strpath);
foreach(string adir in temp)
{
al.addrange(getfiles(adir, resultsall));
}
}
return al;
}
}
}
其中关于应该有系统文件的检查,还有用户不可访问系统文件夹的判断,但是这个项目中用不上,又不想用try块儿影响效率。
还是递归的思想!
新闻热点
疑难解答