Java I/O流 作业(其一)
输入任意文件(文件夹)路径,判断该文件(文件夹)是否存在,完成以下要求(如图)
a.如果该文件(文件夹)存在,则判断是文件夹还是文件
1)如果是文件夹,提示用户输入新名称,以新名称重命名该文件夹
2)如果是文件,那么在控制台输出该文件的扩展名
b.如果该文件(文件夹)不存在,则提示"该文件(文件夹)不存在
public class three {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入路径");
String lujing = input.next();
String[] split=null;
File file1=new File(lujing);
//判断是否存在
if(file1.exists()){
//如果是文件
if(file1.isFile()){
String s = file1.toString();
split= s.split("\\.");
System.out.println("以."+split[split.length-1]+"后缀结束");//split.leng-1 解决多个. 的问题
}else if(file1.isDirectory()){//如果是文件夹
System.out.println("是文件夹");
String[] sl = lujing.split("\\\\");
String str1="";
System.out.println("请输入新的名称");
String str = input.next();//s
for (int i = 0; i < sl.length; i++) {
if(i==sl.length-1) {
sl[sl.length-1]=str;
str1=str1+sl[sl.length-1];
}
str1=str1+sl[i]+"\\";
}
file1.renameTo(new File(str1));
}
}else{
System.out.println("文件不存在");
}
}
}
length-1是获取最后一位元素的下标,加个[ ]就是获取最后一位下标所在的元素。
先把路径按\\拆分,得到split数组,再键盘获取更改后的文件夹名,for循环迭加str1,加个if判断,到最后一号元素换成键盘获取的文件夹名,替换即可。
总而言之,循环那边没啥问题的朋友们,看到这个逻辑一看就会了,让我们一起加油冲冲冲!