1、 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求:1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状显示;2. 输入: java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)3. 输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示
解决方案 »
- 开源发布 JNSP(java network service platform)分布式服务
- 能帮我看下这个代码怎么会报错的吗,谢谢
- 求高手解释API中这2句话。。很难理解
- name = name.replace("\\","/") 那个兄弟用过这个方法(或者类似处理过)。 给指点一下
- 20分请求java读取property文件的路径问题,着急呀!
- 如何让程序产生的乱码正确显示?
- GUI中如何实现在一个匿名内部类中跳转页面
- 多线程问题
- 谁能把这个Applet下载下来吗?我用NetAnts不行。请指教!http://www4.cmbchina.com/javahq/fenshi.htm
- 有两个问题请教大家!!!
- 请教大家一个问题,关于java连接2台机器的
- arrayList<Ball>? 什么意思 有人知道吗?
这里面有java文件相关的操作(很多实现的代码)
package day01;
import java.io.*;
public class Folder {
private File dir;
public Folder(){
}
public void showCurrentDirectory(){
dir=new File(".");
File fileName[]=dir.listFiles();
for(File f:fileName){
System.out.println(f.getName());
if(f.isDirectory()){
String newPath=".\\"+f.getName();
showDesignateDirectory(newPath);
}
}
}
public void showDesignateDirectory(String path){
dir=new File(path);
File fileName[]=dir.listFiles();
for(File f:fileName){
System.out.println(f.getName());
if(f.isDirectory()){
String newPath=path+"\\"+f.getName();
showDesignateDirectory(newPath);
}
}
}
public void addDirectory(String directoryName){
String path=".//"+directoryName;
File newDirectory =new File(path);
newDirectory.mkdir();
showCurrentDirectory();
}
public void removeDirectory(String directoryName){
String path=".//"+directoryName;
File newDirectory =new File(path);
newDirectory.delete();
showCurrentDirectory();
}
public static void main(String[] args){
Folder f=new Folder();
if(args==null){
f.showCurrentDirectory();
}else if(args[0].equals("add")){
f.addDirectory(args[1]);
}else if(args[0].equals("del")){
f.removeDirectory(args[1]);
}else{
f.showDesignateDirectory(args[0]);
}
}
}楼主是让用swing做吗,我写了个不是swing的
测试结果
求职.doc
馈赠礼仪.doc
新建文本文档.txt
远景.doc
200812291812180.xls
唐代诗歌论文.doc
亲缘友缘
d开卷有益.pps
Father to Son.pps
生命列车.pps
import java.io.IOException;public class TestTree { private File f = new File(""); //初始化路径
private String path ;
//利用构造方法设置当前路径
public TestTree() throws IOException{
this.path = this.f.getCanonicalPath();
}
//获取当前路径:
public String getPath() {
return this.path ;
}
public void setFile(File f) {
this.f = f;
}
public File getFile() {
return this.f;
}
public static void main(String[] args) throws IOException {
TestTree test = new TestTree();
//操作命令
String fileName = "";
//设置当前路径:
if(args.length == 0) {
System.out.println( "当前系统运行物理路径:" + test.getPath());
test.setFile(new File(test.getPath()));
test.Tree(new File(test.getPath()), 1);
}else {
if(args[0].equals("add")) {
//获取新建文件名,并调用方法
//args[1]为文件夹名字
test.creatNewFile(args[1]);
}else if(args[0].equals("del")) {
//同下,方法不一样而已
test.deleteFile(args[1]);
}else if(args[0].contains(":")) {
test.Tree(new File(test.getFile() + args[0]),1);
}else {
System.out.println("指令输入错误");
}
}
}
//在指定路径下,创建文件夹。
public void creatNewFile(String fileName) throws IOException {
File tempFile = new File(this.getFile() + fileName);
if(!tempFile.exists()) {
boolean bool = tempFile.mkdir();
//如果文件夹创建不成功,打印错误
if(!bool) {
System.out.println("error");
}
//当前路径封装成File对象
this.Tree(new File(this.getPath()), 1);
}else {
System.out.println("该文件夹已存在!");
}
}
//在指定路径下,删除文件夹
public void deleteFile(String fileName) throws IOException {
File tempFile = new File(this.getFile() + fileName);
if(tempFile.exists()) {
boolean bool = tempFile.delete();
//如果文件夹创建不成功,打印错误
if(!bool) {
System.out.println("error");
}
//当前路径封装成File对象
this.Tree(new File(this.getPath()), 1);
}else {
System.out.println("该文件夹并不存在!");
}
}
//以文本形式树状显示(递归)
public static void Tree(File f,int level) {
String str = "";
for(int i=0; i<level; i++) {
str += " " ;
} File[] childs = f.listFiles();
for(int i=0;i<childs.length;i++) {
System.out.println (str + childs[i].getName());
if (childs[i].isDirectory()) {
Tree(childs[i],++level);
}
}
}
}//程序运行步骤及结果:
//打开cmd,找到Folder.java源文件编译成功之后,执行java命令
//参数一、 java Folder 显示当前文件夹下的目录和文件的文本形式树状显示;
//参数二、 java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)
//参数三、 java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;
//参数四、 java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示
// (del命令只能删除没有子文件的文件夹)
//相关提示:java Folder ss 提示:指令输入错误
//温馨提示:add、del命令执行成功不会提示,只能当del命令不能被正常执行的情况下程序将提示"error"//写了二个小时终于完成啦,也算是帮自己复习一下前后的知识吧。
//读程序的时候先分析一下程序的整体结构,各关键地方作者已写好注释。
//如有不理解之处或程序Bug,欢迎广大CSDN朋友提出,本人随时会来跟贴说明及更正。
更正之处:打开cmd,找到Folder.java源文件编译成功之后,执行java命令
细心的朋友会发现,上面的类名为 public class TestTree 所以大家运行前需要把该文件名存在为
TestTree.java
程序运行步骤及结果:
打开cmd,找到Folder.java源文件编译成功之后,执行java命令
参数一、java TestTree 显示当前文件夹下的目录和文件的文本形式树状显示;
参数二、java TestTree C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)
参数三、java TestTree aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;
参数四、java TestTree aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示
(del命令只能删除没有子文件的文件夹)
相关提示:java TestTree ss 提示:指令输入错误
温馨提示:add、del命令执行成功不会提示,只能当del命令不能被正常执行的情况下程序将提示"error"写了二个小时终于完成啦,也算是帮自己复习一下前后的知识吧。
读程序的时候先分析一下程序的整体结构,各关键地方作者已写好注释。
如有不理解之处或程序Bug,欢迎广大CSDN朋友提出,本人随时会来跟贴说明及更正。