package fileinfo;
import java.io.File;
public class FileInfo {
private File fp;
private int index;
private int level;
public FileInfo(File fp,int index,int level){
this.fp=fp;
this.index=index;
this.level=level;
}
public File getFp() {
return fp;
}
public int getIndex() {
return index;
}
public int getLevel() {
return level;
}
public void setIndex(int index) {
this.index = index;
}
}
package fileinfo;
import java.io.File;
import java.util.Stack;
public class Test {
private static void treeView(String path) {
int cnt;
File f = new File(path);
if (f.isFile()) {
System.out.println(f.getName());
return;
}
Stack<FileInfo> stk = new Stack<FileInfo>();
boolean foundDir;
FileInfo finfo = new FileInfo(f, 0, 0);
stk.push(finfo);
while (!stk.empty()) {//如果不空
finfo = stk.peek();
f = finfo.getFp();
cnt=f.getName().length();
foundDir = false;
for (int i = finfo.getIndex(); !foundDir && i < f.listFiles().length; i++) {
for (int j = 0; j < finfo.getLevel()*10; j++) {
System.out.print(" ");
}
System.out.print(f.listFiles()[i].getName());
if (f.listFiles()[i].isDirectory()) {
System.out.print(" *");
finfo.setIndex(i + 1);
stk.push(new FileInfo(f.listFiles()[i], 0, finfo.getLevel() + 1));
foundDir = true;
}
System.out.println();
}
if (!foundDir)
stk.pop();
}
}
public static void main(String[] args) {
treeView("d:\\Program");
}
}
.gitignore
.idea *
.gitignore
libraries *
lib.xml
MigLayout.xml
misc.xml
modules.xml
workspace.xml
data.txt
hero.lrc
lib *
miglayout-core-javadoc.jar
miglayout-core-sources.jar
miglayout-core.jar
miglayout-swing-javadoc.jar
miglayout-swing-sources.jar
miglayout-swing.jar
mysql-connector-j-8.0.33.jar
out *
production *
project001 *
cn *
com *
C1.class
C2.class
C3.class
C4.class
C5.class
C6.class
C7.class
C8.class
C9.class
jform *
myJForm.class
myJForm.jfd
MyClass.class
p71 *
Circle.class
Cylinder.class
Test.class
Yun2_4_shixun2.class
com *
abc *
project1 *
A.class
project2 *
B.class
course *
service *
FactorialSum.class
eexam6 *
Book.class
Test_Book.class
fileinfo *
FileInfo.class
Test.class
Main.class
test *
JDBC.class
week3 *
day3 *
Employee.class
Manager.class
Test_Employee.class
day4 *
A.class
B.class
Test.class
exam1 *
Employee.class
Test.class
exam2 *
Employee.class
Test.class
exam3 *
Employee.class
Test.class
exam4 *
Employee.class
Singleton.class
Test.class
exam5 *
Book.class
Employee.class
Singleton.class
Test.class
TestSingleton.class
Test_Book.class
exam6 *
Info.class
Lyric.class
Yun2_4.class
xxx *
project1 *
A.class
project2 *
B.class
project001.iml
src *
cn *
com *
C1.java
C2.java
C3.java
C4.java
C5.java
C6.java
C7.java
C8.java
C9.java
jform *
myJForm.java
myJForm.jfd
MyClass.java
p71 *
Circle.java
Cylinder.java
Test.java
Yun2_4_shixun2.java
com *
abc *
project1 *
A.java
project2 *
B.java
course *
entity *
service *
FactorialSum.java
util *
eexam6 *
Test_Book.java
fileinfo *
FileInfo.java
Test.java
Main.java
test *
JDBC.java
week3 *
day3 *
Employee.java
Manager.java
Test_Employee.java
day4 *
Test.java
exam1 *
Employee.java
Test.java
exam2 *
Employee.java
Test.java
exam3 *
Employee.java
Test.java
exam4 *
Employee.java
Singleton.java
Test.java
exam5 *
Book.java
Employee.java
Singleton.java
Test.java
TestSingleton.java
Test_Book.java
exam6 *
Info.java
Lyric.java
Yun2_4.java
xxx *
project1 *
A.java
project2 *
B.java
三个源码 及 真心英雄 歌词与音频 *
hero.lrc
Info.java
Lyric.java
Yun2_4.java
真心英雄.wav
三个源码 及 真心英雄 歌词与音频.zip
真心英雄.wav
小改动的代码:
package fileinfo;
import java.io.File;
import java.util.Stack;
public class Test {
private static void treeView(String path) {
int cnt;
File f = new File(path);
if (f.isFile()) {
System.out.println(f.getName());
return;
}
Stack<FileInfo> stk = new Stack<FileInfo>();
boolean foundDir;
FileInfo finfo = new FileInfo(f, 0, 0);
int level;
int index;
stk.push(finfo);
while (!stk.empty()) {//如果不空
finfo = stk.peek();
f = finfo.getFp();
level=finfo.getLevel();//第几层
index=finfo.getIndex();//某层第index个文件
foundDir = false;
for (int i = index; i < f.listFiles().length; i++) {
for (int j = 0; j < level*10; j++) {
System.out.print(" ");
}
System.out.print(i+ " " +f.listFiles()[i].getName());
if (f.listFiles()[i].isDirectory()) {
System.out.println(" **DIR**");
finfo.setIndex(i + 1);// 标记下一个没有处理的文件
FileInfo sub = new FileInfo(f.listFiles()[i], 0, level + 1);
stk.push(sub);
foundDir = true;
break;
}
System.out.println();
}
if (!foundDir)
stk.pop();
}
}
public static void main(String[] args) {
treeView("d:\\Program\\teach\\project001\\");
}
}