我编了个方法,把给定目录的文件及子文件打印出来,但是当参数递增时,++level要比用level+1多退一截,代码如下,各位看看:
用level+1时输出为:
a
/b
/d
/o.txt
/e
/g
/h
/m.txt
/l
/f.txt
/c.txt
用++level时输出为:
a
/b
/d
/o.txt
/e
/g
/h
/m.txt
/l
/f.txt
/c.txt
意思就是如果有两个子文件夹,第二个文件夹里的文件要比第一个多一个level;
代码如下:
import java.io.File;
public class msbTree {
public static void main(String[] args){
File file = new File("C:/Documents and Settings/Admini" +
"strator/workspace/FileTree/src/a");
System.out.println(file.getName());
tree(file,1);
}
public static void tree(File file,int level){
String fr = "";
for(int k=0;k<level;k++){
fr += " ";
}
File[] children = file.listFiles();
for(int i=0;i<children.length ;i++){
System.out.println(fr+"/"+children[i].getName());
if(children[i].isDirectory()&&children[i].listFiles()!=null){
tree(children[i],++level);
}
}
}
}
用level+1时输出为:
a
/b
/d
/o.txt
/e
/g
/h
/m.txt
/l
/f.txt
/c.txt
用++level时输出为:
a
/b
/d
/o.txt
/e
/g
/h
/m.txt
/l
/f.txt
/c.txt
意思就是如果有两个子文件夹,第二个文件夹里的文件要比第一个多一个level;
代码如下:
import java.io.File;
public class msbTree {
public static void main(String[] args){
File file = new File("C:/Documents and Settings/Admini" +
"strator/workspace/FileTree/src/a");
System.out.println(file.getName());
tree(file,1);
}
public static void tree(File file,int level){
String fr = "";
for(int k=0;k<level;k++){
fr += " ";
}
File[] children = file.listFiles();
for(int i=0;i<children.length ;i++){
System.out.println(fr+"/"+children[i].getName());
if(children[i].isDirectory()&&children[i].listFiles()!=null){
tree(children[i],++level);
}
}
}
}
public class msbTree {
public static void main(String[] args){
File file = new File("C:/Documents and Settings/Admini" +
"strator/workspace/FileTree/src/a");
System.out.println(file.getName());
tree(file,1);
}
public static void tree(File file,int level){
String fr = "";
for(int k=0;k<level;k++){
fr += " ";
}
File[] children = file.listFiles();
for(int i=0;i<children.length ;i++){
System.out.println(fr+"/"+children[i].getName());
if(children[i].isDirectory()&&children[i].listFiles()!=null){
tree(children[i],++level);
}
}
}
}]
public class msbTree {
public static void main(String[] args){
File file = new File("C:/Documents and Settings/Admini" +
"strator/workspace/FileTree/src/a");
System.out.println(file.getName());
tree(file,1);
}
public static void tree(File file,int level){
String fr = "";
for(int k=0;k<level;k++){
fr += " ";
}
File[] children = file.listFiles();
for(int i=0;i<children.length ;i++){
System.out.println(fr+"/"+children[i].getName());
if(children[i].isDirectory()&&children[i].listFiles()!=null){
tree(children[i],++level);
}
}
}
}]
import java.io.File;
public class msbTree {
public static void main(String[] args){
File file = new File("C:/Documents and Settings/Admini" +
"strator/workspace/FileTree/src/a");
System.out.println(file.getName());
tree(file,1);
}
public static void tree(File file,int level){
String fr = "";
for(int k=0;k<level;k++){
fr += " ";
}
File[] children = file.listFiles();
for(int i=0;i<children.length ;i++){
System.out.println(fr+"/"+children[i].getName());
if(children[i].isDirectory()&&children[i].listFiles()!=null){
tree(children[i],++level);
}
}
}
}
level++是先进行运算再加+1
level+1之后,level的值还是不变(如果你没有level=level+1的话)
a
/b
/d
/o.txt
/e
/g
/h
/m.txt
/l
/f.txt
/c.txt
level+1:
a
/b
/d
/o.txt
/e
/g
/h
/m.txt
/l
/f.txt
/c.txt
*/