package com.oceanstar;
import java.io.File;
import java.util.*;
public class ArrayListImp {
// 只显示文件
public static Object[] WalkDir(File file) {
if (!file.exists()){
System.out.println("not exist");
return null;
}
List<Object> list = new ArrayList<>();
File[] fileList = file.listFiles();
assert fileList != null;
for (File f : fileList) {
if (f.isDirectory()) {
Object[] objects = WalkDir(f);
list.addAll(Arrays.asList(objects));
}else { //f.isFile()
list.add(f.getAbsoluteFile() );
}
}
return list.toArray();
}
// 层次显示目录
public static Object[] WalkDir(File file, int level) {
if (!file.exists()){
System.out.println("not exist");
return null;
}
String str = "|";
for(int i = 0; i < level; i++){
str += "------";
}
List<Object> list = new ArrayList<>();
File[] fileList = file.listFiles();
assert fileList != null;
for (File f : fileList) {
if (f.isDirectory()) {
Object[] objects = WalkDir(f, level + 1);
list.addAll(Arrays.asList(objects));
}else {
list.add(str + f.getName() + "\n");
}
}
return list.toArray();
}
// 如果是文件就追加到
public static Object[] WalkDirStack(File file) {
List<Object> list = new ArrayList<>();
Stack<File> stack = new Stack<>();
stack.push(file);
while (!stack.empty()){
File gf = stack.pop();
File[] fileList = gf.listFiles();
assert fileList != null;
for (File f : fileList) {
if (f.isDirectory()) {
stack.push(f);
}else {
list.add(f.getName());
}
}
}
return list.toArray();
}
// 如果是文件就追加到
public static Object[] WalkDirStack2(File file) {
List<Object> list = new ArrayList<>();
Stack<File> stack = new Stack<>();
stack.push(file);
while (!stack.empty()){
File gf = stack.pop();
File[] fileList = gf.listFiles();
assert fileList != null;
for (File f : fileList) {
if (f.isDirectory()) {
list.add(f.getName());
stack.push(f);
}else {
list.add( f.getName());
}
}
}
return list.toArray();
}
public static void main(String args[]) {
Object[] o = WalkDirStack(new File("F:\\Hi3559AV100R001C02SPC020\\01.software\\board"));
for (Object c: o) {
System.out.println(c);
}
// System.out.println(Arrays.toString(o));
System.out.println(o.length);;
}
}