Java 一些目录操作(查看/创建/删除)
还是来自SOSO问问的问题:
编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求:
1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状显示;
2. 输入: java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)
3. 输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;
4. 输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示
我发现我好像从来没有做过File操作。。。于是来试试看:
-
import java.io.*;
-
import java.util.*;
-
-
public class Folder
-
{
-
-
// 显示根目录名
-
-
// 根据标识判断前面树形符号
-
for(int i = 0; i < flag.size(); ++i) {
-
buf.append((flag.get(i) ? " " : "│"));
-
}
-
-
// 输出下属文件
-
for (int i = 0; i < files.length; i++) {
-
// 输出文件/目录名
-
if (i == files.length - 1) {
-
} else {
-
}
-
-
// 如果是目录
-
if(files[i].isDirectory()) {
-
// 判断下级符号前缀(如果是最后的目录,前面不能带"“"}
-
if (i == files.length - 1) {
-
flag.add(true);
-
} else {
-
flag.add(false);
-
}
-
// 递归打印目录
-
printFolder(files[i].getAbsolutePath(), flag);
-
}
-
}
-
-
// 去掉当前目录的标识
-
flag.remove(flag.size() - 1);
-
}
-
-
{
-
// 用于保存目录前缀标识
-
List<Boolean> flag = new ArrayList<Boolean>();
-
flag.add(true);
-
-
switch (args.length)
-
{
-
case 1:
-
// 参数目录
-
Folder.printFolder(args[0], flag);
-
break;
-
-
case 2:
-
// 在当前目录下增加或删除
-
if ("add".equals(args[0]))
-
{
-
// 添加子目录
-
}
-
if ("del".equals(args[0]))
-
{
-
// 删除子目录
-
}
-
-
default:
-
// 显示当前目录(参数为0和为1时均执行)
-
break;
-
}
-
}
-
}
截图:
- java Folder:查看当前目录内容
- java Folder c:\test:查看指定目录的文件夹内容
- java Folder add test:在当前目录下创建test文件夹,并显示当前目录内容
- java Folder del test:删除当前目录下的test文件夹,并显示当前目录内容