public class Catalog {
static int count = 0;
String catalogName;
boolean hasFile;
Catalog[] catalogs;
public Catalog(String name) {
catalogName = name;
}
public void recurse(Catalog catalog) {
if(count >= 10000 || catalog == null) return;
System.out.println("#" + (++count) + " " + catalog.catalogName);
if(catalog.catalogs != null) {
for(int i = 0; i < catalogs.length; i++) {
recurse(catalog.catalogs[i]);
}
}
}
public static void main(String[] args) {
Catalog[] c1 = new Catalog[10];
Catalog[] c2;
for(int i = 0; i < 10; i++) {
c1[i] = new Catalog("\t" + i);
c2 = new Catalog[10];
for(int j = 0; j < 10; j++) {
c2[j] = new Catalog("\t\t" + i + "-" + j);
}
c1[i].catalogs = c2;
}
Catalog c = new Catalog("¸ù");
c.catalogs = c1;
c.recurse(c);
}
}
static int count = 0;
String catalogName;
boolean hasFile;
Catalog[] catalogs;
public Catalog(String name) {
catalogName = name;
}
public void recurse(Catalog catalog) {
if(count >= 10000 || catalog == null) return;
System.out.println("#" + (++count) + " " + catalog.catalogName);
if(catalog.catalogs != null) {
for(int i = 0; i < catalogs.length; i++) {
recurse(catalog.catalogs[i]);
}
}
}
public static void main(String[] args) {
Catalog[] c1 = new Catalog[10];
Catalog[] c2;
for(int i = 0; i < 10; i++) {
c1[i] = new Catalog("\t" + i);
c2 = new Catalog[10];
for(int j = 0; j < 10; j++) {
c2[j] = new Catalog("\t\t" + i + "-" + j);
}
c1[i].catalogs = c2;
}
Catalog c = new Catalog("¸ù");
c.catalogs = c1;
c.recurse(c);
}
}
解决方案 »
- 大家好,java ide关于javase版的植物大战僵尸联机版送出源码 [推荐]
- 请教SWT录象正在播放 直接关闭view 导致整个程序卡死的问题
- JBuilder常出现的问题!
- JAVA里如何安全有效地停止(或者说销毁)线程?请指点,万分感谢!
- 监控消息队列
- 怎样输出无参构造函数里的printf的内容
- Socket编程问题
- 使用border的问题
- zhaoyongzhu在吗?我配置tomcat4+apache时与你有个同样的问题,你已搞定,请问怎么回事呀?谢啦
- GG,我回来了,好久没来,又有新问题!请GG们进来看看哦!还有上次的SWING颜色的框框问题我有新进展!!!
- 欢迎大家加入我的群"华南软件技术基地",群QQ为8373474,一起提高啊
- java中的密码框??
import java.util.*;public class Directory {
public class Catalog {
String name;
boolean hasFile;
Catalog [] catalogs;
}
public class CatalogStack {
ArrayList data = new ArrayList();
public void push(Catalog cat) {
data.add(cat);
}
public Catalog pop() {
Catalog cat;
int index = 0;
cat = (Catalog)data.get(index);
data.remove(index);
return cat;
}
public int size() {
return data.size();
}
}
Catalog root;
int printLevel = 0;
void initialize(){
if (root != null) {
return;
}
root = new Catalog();
root.name = "root";
root.hasFile = true;
root.catalogs = new Catalog[3];
for (int i = 0; i < root.catalogs.length; i ++) {
root.catalogs[i] = new Catalog();
root.catalogs[i].name = "child" + i;
root.catalogs[i].catalogs = new Catalog[2];
for (int j = 0; j < 2; j ++) {
root.catalogs[i].catalogs[j] = new Catalog();
root.catalogs[i].catalogs[j].name = "grandson" + i + "-" + j;
}
}
}
public void printAllFolders()
{
//printNode(root);
printNodeWithoutRecurve();
}
private void printNodeWithoutRecurve(){
CatalogStack stack = new CatalogStack();
if (root == null) { return ;} stack.push(root);
//System.out.println(root.name);
while (stack.size() != 0) {
Catalog cat = stack.pop();
if (cat == null) {continue;}
System.out.println(cat.name);
for (int i = 0; (cat.catalogs != null)&&(i < cat.catalogs.length); i ++) {
if (cat.catalogs[i] == null) { continue; }
stack.push(cat.catalogs[i]);
}
}
}
private void printNode(Catalog node) {
if (node == null) {
return ;
}
for (int i = 0; i < printLevel; i ++) {
System.out.print(" ");
}
System.out.println(node.name + ((node.hasFile ? "Y" : "N")));
for (int subCatalogIndex = 0;
(node.catalogs != null) && (subCatalogIndex < node.catalogs.length) ;
subCatalogIndex ++) {
if (node.catalogs[subCatalogIndex] == null) {
continue;
}
printLevel ++;
printNode(node.catalogs[subCatalogIndex]);
}
printLevel --;
}
public static void main(String[] args){
Directory dir = new Directory();
dir.initialize();
dir.printAllFolders();
}
}
class Tester{
public void seekFiles(String strName, Catalog catalog, String tab1) {
int j=0;
try{
File outFile = new File(strName);
catalog = new Catalog();
catalog.CatalogName = outFile.getName();
if (outFile.isDirectory()) {
catalog.hasFile = true;
String[] fileNames = outFile.list();
catalog.catalogs = new Catalog[fileNames.length];
for (int i = 0; i < fileNames.length; i++) {
this.seekFiles(outFile.getPath() + "\\" + fileNames[i],catalog.catalogs[i],tab1+"\t");
}
}
else if (outFile.isFile()) {
catalog.hasFile = false;
}
else {
System.out.println("File Not Found");
}
}catch(Exception e){
System.out.println(e);
}
}
public static void main(String args[])
{
Tester t=new Tester();
Catalog catalog = new Catalog();
t.seekFiles("d:\\oracle",catalog,"\t");
}
}
class Catalog {
String CatalogName;
boolean hasFile;
Catalog[] catalogs;
}
String CatalogName;
boolean hasFile;
Catalog[] catalogs;
}public class DirectorySearch
{
public static void search(Catalog catalog)
{
if(!catalog.hasFile)//this is not a directory
return ;
try
{
System.out.println(catalog.CatalogName);
for(int i=0;i<catalog.catalogs.length;i++)
{
Catalog c=catalog.catalogs[i];
if(c.hasFile)
System.out.println(c.CatalogName);
search(c);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
Catalog catalog=new Catalog();
//自己初始化这个catalog
search(catalog);
}
}