资源简介
一个用Java实现的一个虚拟文件系统,支持多用户使用,模拟了数据分块,实现了一些基本的文件目录操作,如创建目录,目录跳转,目录的重命名,复制拷贝,删除,以及文件的创建,编辑,重命名和删除,查看目录和文件的大小等。内含技术说明和使用说明及较多的注释,可以很清楚地了解其实现过程
代码片段和文件信息
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Stack;
import util.AllUser;
import util.MyDir;
import util.MyDisk;
import util.MyDiskBlock;
import util.MyFile;
public class MainTest {
public static void main(String[] args) throws IOException {
System.out.println(“欢迎光临周亮俊文件系统请输入您的用户名“);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String username;
while ((username = br.readLine().trim()).equals(““))
System.out.println(“用户名输入有误,请重新输入“);
MyDir nowdir = new MyDir(username);
System.out.println(“欢迎光临“ + username
+ “ 您可以创建新的目录和文件,如需帮助,输入help查看帮助指令“);
MyDir dirsave = null;
MyFile filesave = null;
while (true) {
System.out.print(username+“/“);
Stack brid=new Stack();
MyDir k = new MyDir();
k = nowdir;
while (nowdir.getFatherDir() != null) // 循环更新父目录磁盘块(添加)和大小,直至根目录
{
brid.push(nowdir.getName()+“/“);
nowdir = nowdir.getFatherDir();
}
nowdir = k;
while(!brid.empty())
System.out.print(brid.pop());
String s = br.readLine().trim();
if (s.equals(“ls“)) // --->目录显示1
nowdir.ls();
else if (s.startsWith(“cd“) && !s.equals(“cd ..“)) { // --->跳转1
String real = s.substring(3 s.length());
MyDir a = nowdir.cd(real);
if (a != null) {
MyDir b = nowdir;
nowdir = a;
nowdir.setFatherDir(b);
} else
System.out.println(“您输入的目录名有误,请重新输入“);
} else if (s.equals(“cd ..“)) { // --->返回1
if (nowdir.cdReturn() != null)
nowdir = nowdir.cdReturn();
else
System.out.println(“已经退到根目录“);
} else if (s.startsWith(“vim“) && s.length() > 4) { // --->创建文件1
String real = s.substring(4 s.length());
nowdir.addFile(new MyFile(real 0 0));
} else if (s.startsWith(“rmfile“) && s.length() > 7) { // --->删除文件,1
String real = s.substring(7 s.length());
MyFile a = nowdir.getFile(real);
if (a != null) {
ArrayList blocklist = a.getBlocklist();
ArrayList thenw = new ArrayList();
for (MyDiskBlock one : blocklist) {
MyDisk.getInstance().deleteUsed(one.getId());
thenw.add(one.getId());
}
nowdir.deleteFile(real);
MyDir save2 = new MyDir();
save2 = nowdir;
while (nowdir.getFatherDir() != null) // 循环更新父目录磁盘块(删除)和大小,直至根目录
{
nowdir.removeold(thenw);
nowdir.updateSize();
nowdir = nowdir.getFatherDir();
}
nowdir = save2;
System.out.println(“删除成功“);
} else
System.out.println(“对不起,该文件不存在“);
} else if (s.startsWith(“rnmfile“) && s.length() > 8) { // --->文件重命名
String real = s.substring(8 s.length());
MyFile a = nowdir.getFile(real);
if (a != null) {
System.out.println(“请输入新的文件名“);
String newname = br.readLine().trim();
if (nowdir.canPast
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-01-10 00:17 软工1007 周亮俊 201026810130 操作系统大实验\
目录 0 2013-01-10 00:17 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\
文件 301 2013-01-03 17:41 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.classpath
文件 383 2013-01-03 17:41 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.project
目录 0 2013-01-10 00:17 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.settings\
文件 598 2013-01-03 17:41 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.settings\org.eclipse.jdt.core.prefs
目录 0 2013-01-10 00:17 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\
文件 14775 2013-01-09 16:22 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\MainTest.class
目录 0 2013-01-10 00:17 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\
文件 1862 2013-01-09 15:44 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\AllUser.class
文件 6628 2013-01-08 16:57 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyDir.class
文件 2921 2013-01-05 18:47 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyDisk.class
文件 1271 2013-01-05 19:39 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyDiskBlock.class
文件 2078 2013-01-05 18:44 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyFile.class
目录 0 2013-01-10 00:17 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\
文件 18383 2013-01-09 16:22 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\MainTest.java
目录 0 2013-01-10 00:17 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\
文件 910 2013-01-09 15:44 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\AllUser.java
文件 5291 2013-01-08 16:57 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyDir.java
文件 1785 2013-01-05 18:47 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyDisk.java
文件 874 2013-01-05 19:39 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyDiskBlock.java
文件 1405 2013-01-05 18:44 软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyFile.java
文件 1092667 2013-01-10 00:05 软工1007 周亮俊 201026810130 操作系统大实验\周亮俊_操作系统大型实验.pdf
相关资源
- JAVA通过网络调用网络打印机的工具类
- JAVA实现多元一次方程组的算法
- JAVA人事管理系统
- java调用cplex必须的jar包:cplex.jar
- 基于J2SE的南京公交查询系统含公交线
- java画图小程序源码
- java 毕业论文外文文献翻译
- jspjava版日历日程xgcalendar比fullcalenda
- JAVA登录窗口完整源代码
- 五子棋程序
- java基础习题
- java控制台实现课程表
- 汽车信息管理系统
- JAVA串口助手接收数据并解析数据存入
- java编程 java数组编程
- 华为Java编程规范试题1(含答案)
- JAVA程序设计竞赛练习
- java编写的计算器实验报告
- GPsJAva写的,功能比较齐全
- Java Web条件查询含源码
- 使用iServer REST API发布工作空间Java
-
SuperMap ob
jects Java几何对象的求交、 - 精典java游戏合集 欢迎大家
- java马里奥
- 关于java的外文文献中英对照
- 基于Java Web技术开发的BBS论坛系统源代
- Java编程实战宝典-配套光盘
- Java多线程断点Sample
- JAVA混淆工具Allatori-5.9-Demo帮助文档中
- JAVA网吧计费系统194190
评论
共有 条评论