java语言实现修改文件名称的功能

本文介绍了作者尝试使用Java语言解决学生文件命名不规范的问题,旨在模仿老师用matlab实现的类似功能。作者提出通过读取文件夹内容,匹配学生信息,并修改文件名的思路,反思自身编程水平还需提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感觉最近有点自卑,不行以后写文章的时候要给自己打鸡血,现在就来一句:「生命之灯因热情而点燃,生命之舟因拼搏而前行」。

上课的时候,老师展示了他那用 matlab 语言解决了学生交实验的文件名命名不规范的问题,其实老师先前让学习委员收,是想让他弄这件事情的,但是学习委员不过醒目,然后老师就自己靠本事吃饭咯。

心血来潮,想着自己能不能也通过 java 语言写一个出来,感觉也高估了自己的能力,自己的编程水平还是有待提高的,以前敲过的代码也仅仅是敲过而已。

问题:解决学生上交文件命名不规范

思路:先读取文件夹里面的内容,然后读取学生的信息,根据学生的姓名匹配原来文件夹里面的文件,最后就是修改啦。

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Main {
	
	static Scanner sc = new Scanner(System.in);
	static properts[] ps1;
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		information();   //录入学生的信息:学号和姓名
		change(ps1);     //根据录入的信息修改源文件的名字
	}
	/*
	 * 使用对象数组存取学生的信息:学号和姓名
	 * 其中的错误:  创建多个对象时  properts[] ps1 = {new properts(),new properts(),new properts(),new properts()}
	 */
	public static void information() {
		System.out.println("请输入要修改的学生文件的数量:");
		int num = sc.nextInt();
		ps1 = new properts[num];
		System.out.println("请输入学生的学号和姓名:");
		for(int i = 0;i < ps1.length;i++) {
			ps1[i] = new properts(sc.next(),sc.next());
		}
	}
	
	/*
	 * 修改文件的名称
	 * 首先用File oldFile =new File("文件路径");读取文件存取的目录
	 * 然后oldFile.listFiles()读取文件夹里面的文件到fs里面
	 * 然后使用字符串的方法:indexOf()获取"."下标,用substring()获取"."前面的文件名
	 * 最后根据文件名是否匹配修改整个文件名
	 * 修改文件名的方法: 将新命名的名称赋值给newName,然后新建文件的路径,最后使用renameTo()方法    
	 */
	public static void change(properts[] ps1) {
		File oldFile = new File("d:\\测试文件夹");
		File[] fs = oldFile.listFiles();
		for(int j = 0;j < ps1.length;j++) {
		     for(int i = 0;i < fs.length;i++) {
			String name = fs[i].getName();
			int index = name.indexOf(".");
			int index2 = name.lastIndexOf(".");
			String name1 = name.substring(0,index);
			if(name1.contains(ps1[j].name)) {          //文件名称匹配成功,修改名称
			     String name3 = name.substring(index);
			     String newName = "实验一" + ps1[j].id +"-" + ps1[j].name+ name3;
			     File dest = new File("d://测试文件夹"+"/" + newName);
			     fs[i].renameTo(dest);
			     System.out.println(fs[i].getName());
			}
		}
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值