/**
* 2、控制台版文件管理器
程序运行后显示所有的磁盘,如下所示:
1.c盘
2.e盘
3.e盘
4.f盘
请选择:
如果用户输入了1,回车后,则显示c盘下所有的目录和文件:
1.c:/a.txt(文件)
2.c:/programe file(目录)
3.返回上一层
请选择:
如果此时用户选择的是文件,例如输入1,回车,则显示文件的相关操作
1.查看文件信息
2.重命名文件
3.删除文件
4.移动文件
如果用户选择的是目录,则继续显示选择目录下的所有文件和目录,以此类推。
*/
static Scanner sc = new Scanner(System.in);
static File[] list = File.listRoots(); //获取跟目录节点
public static void main(String[] args) {
// System.out.println(Arrays.toString(list));
while(true){
//遍历根目录
for (int j = 0; j < list.length; j++) {
String string = list[j].toString();
//菜单显示盘名
System.out.println(j+1+"、"+string.charAt(0)+"盘");
}
System.out.println("请选择:");
int next = sc.nextInt()-1;
//盘名 数组
File[] file = list[next].listFiles();
show(file);
}
}
//菜单
public static void a(String... str){
for(String a: str){
System.out.println(a);
}
}
public static File[] show(File[] file) {
//遍历根目录文件
for (int i = 0; i < file.length; i++) {
String name = file[i].getName();
if(file[i].isFile()){
System.out.println(i+1+"、"+file[i]+"(文件)");
}else {
System.out.println(i+1+"、"+file[i]+"(目录)");
}
}
System.out.println("请选择:");
int n1 = sc.nextInt()-1;
if(file[n1].isFile()){
//是文件
File file2 = file[n1];
while(true){
a("1.查看文件信息","2.重命名文件","3.删除文件","4.移动文件","任意.返回上一层");
System.out.println("请选择:");
String n2 = sc.next();
if(n2.equals("1")){
System.out.println("文件信息");
System.out.println("文件名:"+file2.getName());
System.out.println("文件大小:"+file2.length());
System.out.println("文件路径:"+file2.getPath());
System.out.println("输入任意键返回");
if("".equals(sc.next()));
}else if(n2.equals("2")){
System.out.println("重命名文件");
String rename = sc.next();
//获取后缀
String name = file2.getName();
String sb = name.substring(name.lastIndexOf("."));
file2.renameTo(new File(file2.getParent()+"/"+rename+sb));
System.out.println("修改成功");
System.out.println("输入任意键返回");
if("".equals(sc.next()));
break;
}else if(n2.equals("3")){
System.out.println("删除文件");
file2.delete();
System.out.println("删除成功");
System.out.println("输入任意键返回");
if("".equals(sc.next()));
break;
}else if(n2.equals("4")){
System.out.println("移动文件");
System.out.println("格式:");
System.out.println("D:/目录/ 请输入目录 /文件名");
String name = file2.getName();//文件名
String parent = file2.getParent();//路径目录
String re = sc.next();
file2.renameTo(new File(parent+"/"+re+"/"+name));
System.out.println("移动成功");
break;
}
else{
break;
}
}
}else{
//是目录就循环
System.out.println("目录");
show(file[n1].listFiles());
}
return file;
}
总结:写法粗糙,API掌握不熟练。