用数据取出来。存到数组中,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)
}
}
}}上面这段代码是把目录下的文件全部列出来,你可以再写一个读取的
把相对路径的字符串当做参数吧。然后递归的时候,路径字符串的实参应该再加上你卜山的下一个文件庆弊州夹名。比方说createFolder(string path){
//create folder 创建文件誉蔽夹的代码你自己写吧,
createFolder(path+“\上面创建的文件夹名称”)
}
对C#的文件API不太熟悉,所以我写点伪代码吧,注意是伪代码啊,只要知道递归的结构怎么样应该就可以了写了吧~说实话,我有点不明白你为什么要在这个问题上用递归,一般人都是想把递归化为非递归的啊。。。
void CreateDirectory(Directory d, string[] paths, int depth)
{
if (depth == paths.Length-1) // 说明到了最里层了
{ CreateFile(d, paths[paths.Length-1])return} // 创建具体的蚂简文本文件
Directory dir = CreateDir(d, paths[depth])// 在文件夹d先创让物陵先以paths的第depth的元素为名字的文件夹
CreateDirectory(dir, paths, depth + 1)// 用新建的文件夹继续递归下去
}
最开始的时候用C盘创建文件夹folder,然后建立好所有要创建的文件夹和文件的名字数组坦戚path,然后就调用CreateDirectory(folder, path, 0)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)