import java.io.*;public class IDiGui {
static void getDir(String strPath) throws Exception {
try {
File f = new File(strPath);
if (f.isDirectory()) {
File[] fList = f.listFiles();
for (int j = 0; j < fList.length; j++) {
if (fList[j].isDirectory()) {
System.out.println(fList[j].getPath());
getDir(fList[j].getPath()); // 在getDir函数里面又调用了getDir函数本身
}
}
for (int j = 0; j < fList.length; j++) { if (fList[j].isFile()) {
System.out.println(fList[j].getPath());
} }
}
} catch (Exception e) {
System.out.println("Error: " + e);
} } public static void main(String[] args) {
String strPath = "D:\\Program Files\\Tencent\\QQ\\AuI18N";
System.out.println(strPath); try {
getDir(strPath);
} catch (Exception e) { }
}
}第二种:import java.io.File;
import java.util.List;public class IDiGuiTest {
public static void diGui(String path) {
File f = new File(path);
if (f.isDirectory()) {
System.out.println(f.getPath());
File[] l = f.listFiles();
for (int x = 0; x < l.length; x++) {
if (l[x].isFile()) {
System.out.println(f.getPath());
}
if((l[x].isDirectory())){
System.out.println(l[x].getPath());
diGui(l[x].getPath());
}
}
}
if (f.isFile()){
System.out.println(f.getPath());
}
} /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method
String path = "D:\\Program Files\\Tencent\\QQ\\AuI18N";
diGui(path);
System.out.println("good");
}}
System.out.println(f.getPath());
}
}
改成,不然它会重复输出一遍
else if(f.isFile()){
System.out.println(f.getPath());
}
}
File f = new File(path);
if (f.isDirectory()) {
System.out.println(f.getPath());
File[] l = f.listFiles();
for (int x = 0; x < l.length; x++) {
if (l[x].isFile()) {
System.out.println(f.getPath()); //应该是这里输出错了我吧,应该是l[x].getPath()
}
if((l[x].isDirectory())){
System.out.println(l[x].getPath());
diGui(l[x].getPath());
}}
}if (f.isFile()){
System.out.println(f.getPath());
}
}
public static void diGui(String path, String s) {
File f = new File(path);
if (f.isDirectory()) {
System.out.println(s + "dir:" + f.getPath());//////
File[] l = f.listFiles();
for (int x = 0; x < l.length; x++) {
if (l[x].isFile()) {
System.out.println(s + "\tfile:" + f.getPath());
}
if ((l[x].isDirectory())) {
// System.out.println(l[x].getPath());//和上重复
diGui(l[x].getPath(), s + "\t");
}
}
} else///加上else
if (f.isFile()) {
System.out.println(s + "file:" + f.getPath());
}
} /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method
String path = "D:\\Program Files\\Tencent\\QQ";
diGui(path, "");//加个s来放各级目录的空格
System.out.println("good");
}
public static void diGui(String path) {
File f = new File(path);
if (f.isDirectory()) {
System.out.println(f.getPath()); //打印目录路径
File[] l = f.listFiles();
for (int x = 0; x < l.length; x++) {
diGui(l[x].getPath()); //递归
}
} else if (f.isFile()) {
System.out.println(f.getPath());//打印文件路径
}
}
if((l[x].isDirectory())){
System.out.println(l[x].getPath());//这句也要删掉。谢谢大家,悬赏分给ID 给langlu
diGui(l[x].getPath());