JAVA有没有改文件名的方法? 就是有一个文件夹,里面的文件有很多个。 文件名是unnamed_0.adx,unnamed_1.adx …… unnamed_13126.adx 。怎么把这些文件名改为:unnamed_00000.adx,unnamed_00001.adx …… unnamed_13126.adx ? 就是后面的数字不足5位的,前面加0,直到有了5位数。 有5位的,则不变。 希望有高手帮忙解决一下, 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的应用环境都是windows,所以我喜欢用vbs改文件名,然后再封装成JAVA的调用,因为用renameTo的时候,总是出现文件名修改不成功的情况.到现在也没查出原因是什么 用 递归的方法遍历所有文件 遍历(file) { if(文件是目录) 循环(文件里的文件) {遍历()} else {处理} } 在处理函数里面 每次调用file.getname() 然后就是进行字符串的分析了先把文件后缀去除在进行分析然后用 renameTo 改名字 package Test;import java.io.File;public class renameFile { int NAME_NUMBER = 5; String FLAG = "_"; String fileName =""; String num_fileName = ""; String new_FileName = ""; String dat = ""; String folder = ""; int num_length =0 ; public static void main(String [] args){ renameFile rf = new renameFile(); rf.processFloder("D:/file/"); } public void processFloder(String strFolder){ this.folder = strFolder; processFloder(new File(strFolder)); } private void processFloder(File folder){ //File folder = new File(strFolder); if(!folder.exists()){ System.out.println("要处理的文件夹不存在!"+folder.getName()); return; } File [] files = folder.listFiles(); if(files.length == 0){ System.out.println(folder.getName()+"文件夹下没有文件!"); return; } for(int i=0;i<files.length;i++){ File file = files[i]; if(file.isDirectory()){ processFloder(file); }else{ rename(file); } } } private void rename(File file){ fileName = file.getName(); num_fileName = fileName.substring(fileName.indexOf(FLAG)+1,fileName.indexOf(".")); dat = fileName.substring(fileName.lastIndexOf(".")); num_length = num_fileName.trim().length(); if(num_length == NAME_NUMBER) return; for(int i=0;i<NAME_NUMBER - num_length;i++){ num_fileName = "0" + num_fileName; } new_FileName = folder+fileName.substring(0, fileName.indexOf(FLAG)+1) + num_fileName + dat; System.out.println(new_FileName); File newFile = new File(new_FileName); file.renameTo(newFile); System.out.println(file.getName()+"修改文件成功!"); }} 获取每一个 FILE对象然后需要改名的就调用renameTo方法至于怎么判断需要该名FILE 的 也有获取文件名的方法获取之后自己判断吧... 问个java压缩文件夹的问题 JPanel, JScrollPane,和图片的问题.... 求助 java db 的应用 登陆界面的跳转 ResultSet的问题 大家看看怎么不行啊? Thread.sleep能这样用么? 請問如何使用java畫一條虛線? 最近较忙,没空来,今天来散点分。 我想学Java,谁能推荐一本适合的书呢?谢谢! 跪求:如何在界面上闪动显示轨迹 急~~~~~Java中exec(String[] cmdarray,String[] envp,File dir)函数的问题!!高手大侠赐教啊!~~~~
{
if(文件是目录)
循环(文件里的文件)
{遍历()}
else
{处理}
} 在处理函数里面 每次调用file.getname()
然后就是进行字符串的分析了
先把文件后缀去除
在进行分析
然后用 renameTo 改名字
String FLAG = "_";
String fileName ="";
String num_fileName = "";
String new_FileName = "";
String dat = "";
String folder = "";
int num_length =0 ;
public static void main(String [] args){
renameFile rf = new renameFile();
rf.processFloder("D:/file/");
}
public void processFloder(String strFolder){
this.folder = strFolder;
processFloder(new File(strFolder));
}
private void processFloder(File folder){
//File folder = new File(strFolder);
if(!folder.exists()){
System.out.println("要处理的文件夹不存在!"+folder.getName());
return;
}
File [] files = folder.listFiles();
if(files.length == 0){
System.out.println(folder.getName()+"文件夹下没有文件!");
return;
}
for(int i=0;i<files.length;i++){
File file = files[i];
if(file.isDirectory()){
processFloder(file);
}else{
rename(file);
}
}
}
private void rename(File file){
fileName = file.getName();
num_fileName = fileName.substring(fileName.indexOf(FLAG)+1,fileName.indexOf("."));
dat = fileName.substring(fileName.lastIndexOf("."));
num_length = num_fileName.trim().length();
if(num_length == NAME_NUMBER)
return;
for(int i=0;i<NAME_NUMBER - num_length;i++){
num_fileName = "0" + num_fileName;
}
new_FileName = folder+fileName.substring(0, fileName.indexOf(FLAG)+1) + num_fileName + dat;
System.out.println(new_FileName);
File newFile = new File(new_FileName); file.renameTo(newFile);
System.out.println(file.getName()+"修改文件成功!");
}
}