static void printTab(int tabs){
//这里就输出空格吧,tab太大
char[] c=new char[tabs*2];
System.out.print(new String(c));
}
static void listDir(File dir,int tabs){
File[] fs=dir.listFiles();
for(int i=0;i<fs.length;i++){
File f=fs[i];
printTab(tabs);
if(f.isFile()){
System.out.println(f.getName());
}
else if(f.isDirectory()){
System.out.println("/"+f.getName());
listDir(f,tabs+1);
}
else{
System.out.println("没有这个文件对象!");
}
}
}
//这里就输出空格吧,tab太大
char[] c=new char[tabs*2];
System.out.print(new String(c));
}
static void listDir(File dir,int tabs){
File[] fs=dir.listFiles();
for(int i=0;i<fs.length;i++){
File f=fs[i];
printTab(tabs);
if(f.isFile()){
System.out.println(f.getName());
}
else if(f.isDirectory()){
System.out.println("/"+f.getName());
listDir(f,tabs+1);
}
else{
System.out.println("没有这个文件对象!");
}
}
}
listDir(new File(args[0]),0);这里要自己保证参数为目录
File outFile = new File(strName);
if (outFile.isDirectory()) {
System.out.println(strAlgin + "/" + outFile.getName());
String[] fileNames = outFile.list();
for (int i = 0; i < fileNames.length; i++) {
Temp.seekFiles(strAlgin+"\t" , outFile.getPath() + "\\" + fileNames[i]);
}
} else if (outFile.isFile()) {
System.out.println(strAlgin+outFile.getName());
} else {
System.out.println("No file");
}
}用法:Temp.seekFiles("","D:\\JavaTools\\eclipse\\workspace\\JavaProgram_ch02");
import javax.swing.*;public class Recurse{
JFrame jf = new JFrame("Test");
JTextArea jt = new JTextArea("jt", 1, 20);
//用JScrollPane来实现JTextArea的滚动条
JScrollPane js = new JScrollPane(jt,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
Recurse(File f){
jf.getContentPane().add(js);
jf.setSize(300, 300);
jf.setVisible(true);
recurseFile(f, 0);
System.out.println("End");
}
void recurseFile(File file, int spaces){
String[] dir = file.list();
for(int i = 0; i < dir.length; i++){
//加空格
for(int s = 0; s < spaces; s++){
jt.append("\t");
}
jt.append(dir[i]);
jt.append("\n");
File temp = new File(file, dir[i]);
//如果是一个目录,还得去搜索子目录
if (temp.isDirectory())
recurseFile(temp, spaces + 1);
}
}
public static void main(String[] args){
if(args.length <1 ){
System.out.println("Enter args parameter");
System.exit(0);
}
File f = new File(args[0]);
if (!f.exists()){
System.out.println("Not Exist");
System.exit(0);
}
new Recurse(f);
}
}你得输入一个目录给args
public void seekFiles(String strName,String tab1) {
int j=0;
try{
File outFile = new File(strName);
if (outFile.isDirectory()) {
System.out.println("\\" + outFile.getName());
String[] fileNames = outFile.list();
for (int i = 0; i < fileNames.length; i++) {
System.out.print(tab1);
this.seekFiles(outFile.getPath() + "\\" + fileNames[i],tab1+"\t");
}
}
else if (outFile.isFile()) {
System.out.println(outFile.getName());
}
else {
System.out.println("File Not Found");
}
//System.out.println(outFile.getParentFile().getName());
}catch(Exception e){
System.out.println(e);
}
}
main()这样:
t.seekFiles("d:\\File","\t");
public void printTab(int tabs) {
//打空格
char[] c = new char[tabs];
System.out.print(new String(c));
} public void listDir(File dir, int tabs) {
//File dir = new File(str);
File[] fs = dir.listFiles();
for (int i = 0; i < fs.length; i++) {
File f = fs[i];
printTab(tabs);
if (f.isFile()) {
System.out.println(f.getName());
}
else if (f.isDirectory()) {
System.out.println("\\" + f.getName());
this.listDir(f, tabs + f.getName().length() + 1);
}
else {
System.out.println("没有这个文件对象!");
}
}
} public static void main(String[] args) {
CTest ct = new CTest();
File infile = new File("F:\\JAVA\\Exercise\\3");
System.out.println("\\" + infile.getName());
ct.listDir(infile, infile.getName().length() + 1);
}