您的位置:首页 > 其它

File&&文件搜索深度优先和广度优先

2017-07-28 10:31 330 查看
//给定一个文件路径有了删除没有则创建该文件

public static void createNewFile(String pathname){

File file = new File(pathname);

if(file.exists()){
file.delete();
}else{
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


//给定一个路径,创建文件目录

public static void createDir(String pathname){

File file = new File(pathname);

//file.mkdir();

file.mkdirs();

}


//遍历文件目录-->深度优先(采用栈)

public static void depthFirstSearch(File file){

if(file.isFile()){
System.out.println("file-->"+file.getAbsolutePath());
return;
}else{
System.out.println("dir-->"+file.getAbsolutePath());

File files[] = file.listFiles();

if(files==null || files.length==0){

return;
}

for (File file2 : files) {

senDuFile(file2);
}

}

}


//遍历文件目录-->广度优先(采用队列)
public static void broadFirstSearch(File file){
//生成对列
Queue<File> queue = new LinkedList<File>();

//把文件根目录放入队列
queue.offer(file);
//循环迭代队列
while(!queue.isEmpty()){
//出队列
File files = queue.poll();
if(files.isFile()){
System.out.println("---->file "+files.getAbsolutePath());
}else{
System.out.println("---->dir "+files.getAbsolutePath());
File filess[] = files.listFiles();
//判断是否为空
if(filess==null || filess.length<0){
return ;
}
for (File file2 : filess) {

queue.offer(file2);
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: