小弟写了个
但返回不正确.package com.yourcompany.util;import java.io.File;public class FileManager { String dir = ""; public String[] serachFiles(String dir) { File root = new File(dir); File[] filesOrDirs = root.listFiles(); String[] result = new String[1000];//这里,文件个数不知道多少.
int j = 0;
for (int i = 0; i < filesOrDirs.length; i++) {
if (filesOrDirs[i].isDirectory()) {
serachFiles(filesOrDirs[i].getAbsolutePath());
} else {
result[i] = filesOrDirs[i].getName();
System.out.println("result[" + i + "]" + result[i]);
//这里如果把result正确的返回给主函数 }
} return result; } /**
* @param args
*/
public static void main(String[] args) {
FileManager fm = new FileManager();
String[] files = fm.serachFiles("D:/abc");
for (int i = 0; i < files.length; i++) {
System.out.println("files[" + i + "]" + files[i]);
} }
}
但返回不正确.package com.yourcompany.util;import java.io.File;public class FileManager { String dir = ""; public String[] serachFiles(String dir) { File root = new File(dir); File[] filesOrDirs = root.listFiles(); String[] result = new String[1000];//这里,文件个数不知道多少.
int j = 0;
for (int i = 0; i < filesOrDirs.length; i++) {
if (filesOrDirs[i].isDirectory()) {
serachFiles(filesOrDirs[i].getAbsolutePath());
} else {
result[i] = filesOrDirs[i].getName();
System.out.println("result[" + i + "]" + result[i]);
//这里如果把result正确的返回给主函数 }
} return result; } /**
* @param args
*/
public static void main(String[] args) {
FileManager fm = new FileManager();
String[] files = fm.serachFiles("D:/abc");
for (int i = 0; i < files.length; i++) {
System.out.println("files[" + i + "]" + files[i]);
} }
}
这样不行,还有子目录
package com.daacc.common;import java.io.File;public class FileManager { String dir = ""; String temp = ""; public String[] serachFiles(String dir) { File root = new File(dir); File[] filesOrDirs = root.listFiles(); String[] result = new String[10]; for (int i = 0; i < filesOrDirs.length; i++) {
if (filesOrDirs[i].isDirectory()) {
serachFiles(filesOrDirs[i].getAbsolutePath());
} else {
result[i] = filesOrDirs[i].getName(); temp += filesOrDirs[i].getName() + ","; }
} return temp.split(","); } /**
* @param args
*/
public static void main(String[] args) {
FileManager fm = new FileManager();
String[] files = fm.serachFiles("D:/abc");
for (int i = 0; i < files.length; i++) {
System.out.println("files[" + i + "]" + files[i]);
} }
}
import java.util.ArrayList;
import java.util.List;public class Test { public List getAllFiles(String root) {
List folders = new ArrayList();
File file = new File(root);
if (file.exists() && file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
File f = (File) files[i];
if (f.isDirectory()) {
folders.add(f);
List children = getAllFiles(f.getAbsolutePath());
if (children != null) {
folders.addAll(children);
}
}
}
return folders;
}
return null;
}
/**
* @param args
*/
public static void main(String[] args) {
List files = new Test().getAllFiles("C:\\Documents and Settings\\Wilson Wu\\桌面\\youbin\\code");
File[] aa = new File[files.size()];
files.toArray(aa);
for (int i = 0; i < files.size(); i++) {
System.out.println(((File) files.get(i)).getName());
}
for (int i = 0; i < aa.length; i++) {
System.out.println(aa[i].getName());
}
}}
====
这个程序就足够你列出目录下的所有文件夹名称,包括文件名称,但是这种结构尽量做出树状展现,参看程序2,对程序1的修改
===================================================================
import java.io.*;public class FileList {
public static void main(String[] args) {
File f = new File("d:\\mytest");
listChilds(f);
}
public static void listChilds(File f) {
System.out.println(f.getName());
if(!f.isDirectory()) return;
File[] childs = f.listFiles();
for(int i=0; i<childs.length; i++) {
listChilds(childs[i]);
}
}
}
====================================
程序2
====
import java.io.*;public class ListFile {
public static void main(String[] args) {
File f = new File("d:\\test");
listChilds(f, 0);
}
public static void listChilds(File f, int level) {
String preStr = "";
for(int i=0; i<level; i++) { preStr += " "; }
System.out.println(preStr + f.getName());
if(!f.isDirectory()) return;
File[] childs = f.listFiles();
for(int i=0; i<childs.length; i++) {
listChilds(childs[i], level + 1);
}
}
}