前言:
本项目适合在校大学生和java基础阶段的初学者,希望各位可以看看。其中具有面向对象思想的运用,以及集合的运用
功能:
1:盘符查询功能
将本地计算机的盘符可视化的显示在控制台上,然后提供交互性输入,可以使大家可选择的进入不同的盘符去查询文件
效果图:
2:盘符内的所有文件查询功能
将本地计算机的盘符内的文件可视化的显示在控制台上,然后提供交互性输入,可以使大家可选择的进入不同的文件去进行操作
效果图:
因为文件夹里面的文件太多了,所以不能展示全。。但是如果直接运行我的代码,你们就可以一目了然了
3:对单个文件的重命名功能:
效果图:
就是将文件的名字改变。。相信大家有手就行。
4:对文件的移动位置功能
效果图
改变文件的位置,有手就行
5:获取文件信息(文件路径,大小,可读,可写)功能
效果图
调几个api就好了
6:返回(继续显示当前所有的文件及目录)功能
效果图
需要一些小机灵等下直接放代码
项目弊端:
其中的删除方法还没写,以及回到盘符的方法也没写。因为需要留给你们一些自主思考的时间(主要是因为我忙),那么废话不多说直接上代码
代码:
Files类:
public class Files {
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "Files{" +
"name='" + name + '\'' +
", id=" + id +
'}';
}
//查询文件夹文件的方法
public File[] allFileSelect(ArrayList<PanFu> arrayList) {
Scanner scanner = new Scanner(System.in);
File[] fff = new File[]{};
System.out.println("请输入你想进入的盘符");
int x = scanner.nextInt();
for (PanFu panFu1 : arrayList) {
if (x == panFu1.getId()) {
System.out.println(panFu1.getId());
File file = new File(panFu1.getName());
File[] files = file.listFiles();
// for (File listFile : file.listFiles()) {
// System.out.println(listFile);
// }
return files;
}
}
return fff;
}
//查询文件夹文件的方法
public ArrayList<Files> intoFile(File[] files) {
ArrayList<Files> files2 = new ArrayList<>();
int id = 1;
for (File file : files) {
Files files1 = new Files();
files1.setId(id);
files1.setName(file.toString());
System.out.print(files1.getId());
System.out.println(files1.getName());
files2.add(files1);
id++;
}
return files2;
}
//获取文件对象的方法
public Files getfile(ArrayList<Files> filesArrayList) {
Files files = new Files();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你想进入的文件");
int i = scanner.nextInt();
for (Files files1 : filesArrayList) {
if (files1.getId() == i) {
return files1;
}
}
System.out.println("未找到");
return files;
}
//重命名
public void rename(Files oneFile, String s){
File file = new File(oneFile.getName());
file.renameTo(new File(s));
// System.out.println();
}
//获取文件信息
public void getMessageOfFile(Files oneFile){
File file = new File(oneFile.getName());
System.out.println("该文件的绝对路径为"+file.getAbsolutePath());
System.out.println("是否可以阅读"+file.canRead());
System.out.println("是否可以阅读"+file.canWrite());
System.out.println("文件长度为"+file.length());
}
//返回上级的方法
public void backForm(Files oneFile){
File file = new File(oneFile.getName());
String str= file.toString().charAt(0)+":";
File file1 = new File(str);
for (File listFile : file1.listFiles()) {
System.out.println(listFile);
}
}
}
PanFu类(英文不好):
public class PanFu {
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "PanFu{" +
"name='" + name + '\'' +
", id=" + id +
'}';
}
public static ArrayList<PanFu> panFuSelect(){
File[] files = File.listRoots();
ArrayList<PanFu> arrayList = new ArrayList<>();
int i=1;
for (File f:files){
PanFu panFu = new PanFu();
panFu.setName(f.toString());
// System.out.println(f.getName());
panFu.setId(i);
System.out.print(panFu.getId());
System.out.println(f);
arrayList.add(panFu);
i++;
}
return arrayList;
}
}
入口方法Demo类:
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//定义一个具体的可操作文件
Files oneFile=new Files();
//定义一个接受盘符对象的集合
ArrayList<PanFu> arrayList = new ArrayList<>();
//定义一个存文件的数组
File [] arrayFile=new File[]{};
//定义一个存文件的集合
ArrayList<Files> filesArrayList = new ArrayList<>();
PanFu panFu = new PanFu();
Files files = new Files();
//遍历盘符
arrayList= panFu.panFuSelect();
System.out.println(arrayList);
//查询盘符
arrayFile=files.allFileSelect(arrayList);
// Scanner scanner = new Scanner(System.in);
// System.out.println("请输入你想进入的盘符");
// int x= scanner.nextInt();
// for (PanFu panFu1:arrayList){
// if (x==panFu1.getId()){
// System.out.println(panFu1.getId());
// File file = new File(panFu1.getName());
// for (File listFile : file.listFiles()) {
// System.out.println(listFile);
// }
//
// }
//遍历文件的方法
filesArrayList= files.intoFile(arrayFile);
// System.out.println("请输入你想进入的文件");
// int i = scanner.nextInt();
// for (Files files1:filesArrayList){
// if (files1.getId()==i){
//
// }
// }
//获取具体文件的方法
oneFile= files.getfile(filesArrayList);
//进行操作文件的方法
System.out.println(1+"重命名"+"\t"+2+"移动"+"\t"+3+"删除"+"\t"+4+"获取文件信息"+"\t"+5+"返回"+"\t");
int i = scanner.nextInt();
Scanner str= new Scanner(System.in);
switch (i){
case 1:
System.out.println(i+"请输入重命名");
String s=str.next();
files.rename(oneFile,s);
System.out.println("重命名为"+s);
break;
case 2:
System.out.println("请输入移动的位置");
String s2=str.next();
files.rename(oneFile,s2);
System.out.println(i+"移动");
break;
case 3:
System.out.println(i+"删除");
break;
case 4:
System.out.println(i+"获取文件信息(文件路径,大小,可读,可写)");
files.getMessageOfFile(oneFile);
break;
case 5:
System.out.println(i+"返回(继续显示当前所有的文件及目录)");
files.backForm(oneFile);
break;
}
}
}