Java模拟文件系统

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 包名.主类

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东北大马猴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值