如何用递归获取一个文件夹内的所有文件存放在一个文件数组中

如何用递归获取一个文件夹内的所有文件存放在一个文件数组中,第1张

可以先读取出文件夹内的所有文件,读出来之后,放到一个文件中,然后再

用数据取出来。存到数组中,public

class

IOtest{

public

static

void

main(String

args){

String

str

=

"c:\\"//假设要读c盘中的所有文件,也可以自己写一个文件路径

File

f

=

new

File(str)

fun(f)

}

public

static

void

fun(File

f){

if(f.idDirectory()){

File

file

=

f.listFile()//列出所有目录

try{

for(int

i=0

i<file.length

i++){

fun(file)

}

}carch(Exception

e){

}else{

System.out.print(f)

}

}

}}上面这段代码是把目录下的文件全部列出来,你可以再写一个读取的

     public TreeNode getAllDirectory(string Address)//获取当前节点目录下的文件,返回节点盘符

        {

            string nodeText=Path.GetFileName(Address)//截取路径上最后一个结点

            TreeNode temp = new TreeNode(nodeText)//盘符

            string[] directory_name = Directory.GetDirectories(Address)//该盘符下的文件

            string[] file_name = Directory.GetFiles(Address)

            if (directory_name.Length >0)//如果没子目录依然返回数组实例,用Length判断

            {

                for (int i = 0 i < directory_name.Length i++)

                {               

                    var subNode=getAllDirectory(directory_name[i])

                    temp.Nodes.Add(subNode) //要把子目录结点连接到当前结点上的

                }

            }

            //这个添加文件列表

            if (file_name.Length > 0)

            {

                var nodes = from item in file_name select new TreeNode(Path.GetFileName(item))

                temp.Nodes.AddRange(nodes.ToArray())

            }

            return temp//总结点

       }

        private void button1_Click_1(object sender, EventArgs e)

        {

            string Address = @"D:\a\b"

            treeView1.Nodes.Add(getAllDirectory(Address))

        }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11952659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存