自己写的代码不完善,,希望大神们能帮忙解决一下问题,执行图为上图,消除d下面的竖线,改为空格y
ps:由于非法字符无法发出来,就用字母代替了package Java_06_Commonclass;import java.io.File;public class Java_0607_TreeClassSS {
private static boolean boss = true;
private static File no = null;
public static void main(String[] args) {
//File f = new File("f:/百度云/尚学堂_马士兵_java基础");
File f = new File("f:/A");
//File f = new File("s:/XMP");
//File f = new File("H:/MyEclipse2014/0-Java-Test");
System.out.println(f.getName());
tree(f, 1, false);
} private static void tree(File f, int level, boolean b) {
File[] childs = f.listFiles();
for (int i = 0; i < childs.length; i++) {
String preStr = "";
if(boss) {
no = childs[childs.length-1];
boss = false;
}
if(childs.length == 1 || i == childs.length-1) {
preStr = "L_";
}else{
preStr = "l--";
}
if(childs[i].getName().equals(no.getName()) ) {
b = true;
}else{
b = false;
}
for (int k = 1; k < level; k++) {
if(b) {
preStr = " " + preStr;
}else{
preStr = "l " + preStr;
}
}
if (childs[i].isDirectory()) {
System.out.println(preStr + childs[i].getName());
tree(childs[i], level + 1, b);
}else{
System.out.println(preStr + childs[i].getName());
}
}
}
}
ps:由于非法字符无法发出来,就用字母代替了package Java_06_Commonclass;import java.io.File;public class Java_0607_TreeClassSS {
private static boolean boss = true;
private static File no = null;
public static void main(String[] args) {
//File f = new File("f:/百度云/尚学堂_马士兵_java基础");
File f = new File("f:/A");
//File f = new File("s:/XMP");
//File f = new File("H:/MyEclipse2014/0-Java-Test");
System.out.println(f.getName());
tree(f, 1, false);
} private static void tree(File f, int level, boolean b) {
File[] childs = f.listFiles();
for (int i = 0; i < childs.length; i++) {
String preStr = "";
if(boss) {
no = childs[childs.length-1];
boss = false;
}
if(childs.length == 1 || i == childs.length-1) {
preStr = "L_";
}else{
preStr = "l--";
}
if(childs[i].getName().equals(no.getName()) ) {
b = true;
}else{
b = false;
}
for (int k = 1; k < level; k++) {
if(b) {
preStr = " " + preStr;
}else{
preStr = "l " + preStr;
}
}
if (childs[i].isDirectory()) {
System.out.println(preStr + childs[i].getName());
tree(childs[i], level + 1, b);
}else{
System.out.println(preStr + childs[i].getName());
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货