您的位置:首页 > 编程语言 > Java开发

实现文件重命名

2017-04-10 12:32 120 查看
面对各式各样的格式,一个一个修改表示心力憔悴,便写了一个程序来实现作业文件的重命名。

首先得到目录下的所有文件名:

/*得到目录下的文件名*/
public static String [] getFileName(String path)
{
File file = new File(path);
String [] fileName = file.list();
return fileName;
}
/*
java.io.File.File(String pathname)
通过将给定的路径名​​字符串转换为抽象路径名来创建新的File实例。如果给定的字符串是空字符串,则结果是空的抽象路径名。
参数:pathname A pathname string
抛出:NullPointerException - If the pathname argument is null

String[] java.io.File.list()
它返回一个字符串数组,包含路径目录中表示的文件和目录。如果路径名不表示目录,则它会返回null,否则就会返回一个字符串数组,包好路劲目录中的每个文件或目录。表示目录本身和目录的父目录的名称不包括在结果中。每个字符串都是一个文件名,而不是完整的路径。
*/


然后就是根据自己的需求改不规范的名称了:

String [] fileName = getFileName(path);   //得到文件名数组
for(String name : fileName)    //遍历文件名
{
String [] names = name.split("\\.");  //将文件名与后缀分离
File oldfile = new File(path + "\\" + name);
File newfile ;
// System.out.println("文件名:"+names[0]);
// System.out.println("后缀:"+names[1]);
String newName;
if(names[0].indexOf(' ') != -1)//检测空格并替换
{
newName = names[0].replace(' ', '_');
System.out.println(" ");
System.out.println(name);
}
else if(names[0].indexOf('-') != -1)//检测断线并替换
{
newName = names[0].replace('-', '_');
System.out.println(" ");
System.out.println(name);
}
else
newName = names[0];
int tag = newName.lastIndexOf('_');//取最后一个“_”

String newname = newName.substring(0, ++tag)+"计算机1401班."+names[1];//设置新名称
System.out.println(newname);

newfile = new File(path + "\\" + newname);
oldfile.renameTo(newfile);//重命名

}
/*
boolean java.io.File.renameTo(File dest)
Renames the file denoted by this abstract pathname.
重命名由此抽象路径名表示的文件。
*/


好了,完整代码:

package com.rename;
import java.io.*;
public class Rename {

public static void main(String[] args) {
String path = "G:\\123";
String [] fileName = getFileName(path);
for(String name : fileName)//遍历文件名
{

String [] names = name.split("\\.");  //将文件名与后缀分离
File oldfile = new File(path + "\\" + name);
File newfile ;
//System.out.println("文件名:"+names[0]);
//System.out.println("后缀:"+names[1]);

String newName;
if(names[0].indexOf(' ') != -1)//检测空格并替换
{
newName = names[0].replace(' ', '_');
System.out.println(" ");
System.out.println(name);
}
else if(names[0].indexOf('-') != -1)//检测断线并替换
{
newName = names[0].replace('-', '_');
System.out.println(" ");
System.out.println(name);
}
else
newName = names[0];
int tag = newN
4000
ame.lastIndexOf('_');//取最后一个“_”

String newname = newName.substring(0, ++tag)+"计算机1401班."+names[1];//设置新名称
System.out.println(newname);

newfile = new File(path + "\\" + newname);
if(oldfile.renameTo(newfile)  ==  true)     //重命名
{
System.out.println("OK");
}
else
System.out.println("Error");

}
}

/*得到目录下的文件名*/
public static String [] getFileName(String path)
{
File file = new File(path);
String [] fileName = file.list();
return fileName;
}
}


结果就是这样的:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息