求java代码:扫描某文件夹 以树目录形式打印出名字
比如有个文件夹叫CC,下面又文件夹AA和文件BB,文件夹AA下又有文件DD,依次输出形式CC--AA--DD。。。BB...
比如 有个文件夹叫 CC,下面又文件夹AA和文件BB,文件夹AA下又有文件DD,依次输出形式
CC--
AA--
DD。。。
BB 展开
CC--
AA--
DD。。。
BB 展开
2个回答
展开全部
public class FileTest {
/**
* @param args
*/
public static void main(String[] args) {
File dir=new File("F:\\CC");
listAll(dir,0);
}
public static void listAll(File dir,int count) {
if(!dir.exists()){//健壮性判断
throw new RuntimeException("目录不存在!!!");
}
System.out.println(getSpace(count)+dir.getAbsolutePath());
count++; //用于记录目录的级数。
File files[]=dir.listFiles();
for(File file:files){
if(file.isDirectory())
listAll(file,count);
else
System.out.println(getSpace(count)+file.getAbsolutePath());
}
}
public static String getSpace(int count) { //根据目录级数产生空格。
StringBuilder sb=new StringBuilder();
for(int i=0;i<count;i++){
sb.append(" ");
}
return sb.toString();
}
}
/**
* @param args
*/
public static void main(String[] args) {
File dir=new File("F:\\CC");
listAll(dir,0);
}
public static void listAll(File dir,int count) {
if(!dir.exists()){//健壮性判断
throw new RuntimeException("目录不存在!!!");
}
System.out.println(getSpace(count)+dir.getAbsolutePath());
count++; //用于记录目录的级数。
File files[]=dir.listFiles();
for(File file:files){
if(file.isDirectory())
listAll(file,count);
else
System.out.println(getSpace(count)+file.getAbsolutePath());
}
}
public static String getSpace(int count) { //根据目录级数产生空格。
StringBuilder sb=new StringBuilder();
for(int i=0;i<count;i++){
sb.append(" ");
}
return sb.toString();
}
}
推荐于2016-08-02
展开全部
楼上的回答不错,但如果目录没有文件,会报错。
下面的是帮忙修改一下
import java.io.File;
public class FileListTest {
public static void main(String[] args) {
String path="c:\\temp";
listAll(new File(path),0);
}
//level用于记录目录的级数。
public static void listAll(File dir, int level) {
String space=getSpace(level);
System.out.println(space+dir.getAbsolutePath());
File files[]=dir.listFiles();
if(null==files){
return;
}
for(File file:files){
if(file.isDirectory()){
listAll(file, ++level);
}else{
System.out.println(space+file.getAbsolutePath());
}
}
}
//根据目录级数产生空格。
public static String getSpace(int level){
StringBuilder sb=new StringBuilder();
for(int i=0;i<level;i++){
sb.append(" ");
}
return sb.toString();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询