您的位置:首页 > 其它

算法Sedgewick第四版-第1章基础-025-用队列实现unix下的Directory命令

2016-04-20 11:56 267 查看
package algorithms.util;

/******************************************************************************
*  Compilation:  javac Directory.java
*  Execution:    java Directory directory-name
*  Dependencies: Queue.java StdOut.java
*
*  Prints out all of the files in the given directory and any
*  subdirectories in level-order by using a queue. Also prints
*  out their file sizes in bytes.
*
*  % java Directory .
*
******************************************************************************/

import java.io.File;

import algorithms.ADT.Queue;

public class Directory {

public static void main(String[] args) {
Queue<File> queue = new Queue<File>();
File root = new File(args[0]);     // root directory
if (!root.exists()) {
StdOut.println(args[0] + " does not exist");
return;
}

queue.enqueue(root);
while (!queue.isEmpty()) {
File x = queue.dequeue();
if (!x.isDirectory()) {
StdOut.println(x.length() + ":\t" + x);
}
else {
File[] files = x.listFiles();
for (int i = 0; i < files.length; i++)
queue.enqueue(files[i]);
}
}
}

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