1、File.java2
package test3;
public class File{
public String fileName;
public File(String name){
this.fileName=name;
}
public void setFileName(String name){
this.fileName = name;
}
public String getFileName(){
return this.fileName;
}
}
2、Folder.java
package test3;
public class Folder{
public String folderName;
private File[] currentFile;
private int fileLength=0;
private int maxSizeOfFile=0;
private Folder[] currentFolder;
private int folderLength=0;
private int maxSizeOfFolder=0;
public Folder(String name,int fileNumber,int folderNumber){
this.folderName=name;
this.currentFile= new File[fileNumber];
this.maxSizeOfFile=fileNumber;
this.currentFolder= new Folder[folderNumber];
this.maxSizeOfFolder=folderNumber;
}
boolean add(File file){
if(fileLength==maxSizeOfFile){
return false;
}
currentFile[fileLength++]=file;
System.out.println(file.getFileName()+"文件已添加。");
return true;
}
boolean add(Folder folder){
if(folderLength==maxSizeOfFolder){
return false;
}
currentFolder[folderLength++]=folder;
System.out.println(folder.getFolderName()+"文件夹已添加。");
return true;
}
void traverseFolder(int diguiNumber){
for(int i=0;i<this.fileLength;i++){
for(int iter=0;iter<diguiNumber;iter++)
System.out.print(" ");
if(currentFile[i].getFileName()!="该文件已删除")
System.out.println("+"+currentFile[i].getFileName());
}
for(int i=0;i<this.folderLength;i++){
if(currentFolder[i]==null)
break;
for(int iter=0;iter<diguiNumber;iter++)
System.out.print(" ");
if(currentFolder[i].getFolderName()!="该文件夹已删除")
System.out.println("+"+currentFolder[i].getFolderName());
currentFolder[i].traverseFolder(++diguiNumber);
}
}
public String getFolderName(){
return this.folderName;
}
public void setFolderName(String name){
this.folderName = name;
}
boolean remove(String name){
for(int i=0;i<fileLength;i++){
if(currentFile[i].getFileName()==name){
currentFile[i].setFileName("该文件已删除");
return true;
}
}
for(int i=0;i<folderLength;i++){
if(currentFolder[i].getFolderName()==name){
currentFolder[i].setFolderName("该文件夹已删除");
return true;
}
}
return false;
}
boolean visit(String name){
for(int i=0;i<fileLength;i++){
if(currentFile[i].getFileName()==name){
if(currentFile[i].getFileName()!="该文件已删除")
System.out.println("+"+currentFile[i].getFileName());
return true;
}
}
for(int i=0;i<folderLength;i++){
if(currentFolder[i].getFolderName()==name){
if(currentFolder[i].getFolderName()!="该文件夹已删除"){
System.out.println("+"+currentFolder[i].getFolderName());
currentFolder[i].traverseFolder(1);
}
return true;
}
}
return false;
}
}
3、Client.java(主类)
package test3;
public class Client{
public static StringBuffer str = new StringBuffer();
public static void main(String[] args){
Folder document = new Folder("我的资料",100,100);
File book = new File("Java编程思想.pdf");
Folder music = new Folder("我的音乐",100,100);
File music1 = new File("你是我的眼.mp3");
File music2 = new File("Without You.mp3");
Folder musicOfLinkinPark = new Folder("林肯公园",100,100);
File music3 = new File("Iridescent.mp3");
File music4 = new File("Numb.mp3");
document.add(book);
document.add(music);
music.add(music1);
music.add(music2);
music.add(musicOfLinkinPark);
musicOfLinkinPark.add(music3);
musicOfLinkinPark.add(music4);
System.out.println("遍历测试-------------------------------");
document.traverseFolder(0);
System.out.println("删除测试-------------------------------");
document.remove("Java编程思想.pdf");
document.traverseFolder(0);
System.out.println("访问测试-------------------------------");
document.visit("我的音乐");
System.out.println("---------------------------------------");
document.traverseFolder(0);
}
}
相关类在Dos命令行的编译命令为:
javac 类1 类2 ······ 类n -d .
//如果编译出现无法解析错误改为:
javac -encoding UTF-8 类1 类2 ······ 类n -d .
//运行
java 包名.主类