当前位置:编程学习 > JAVA >>

跪求程序设计:写一个批量修改文件名的程序(最好用JAVA,C语言,C++也行)

补充:要GUI界面的。
追问:试了下,运行前没检查出问题,但是运行之后会提示很多问题,那些英文我都看不懂,我都不知道是哪里错了。。要求就实现批量修改文件名这个功能,还有GUI界面。谢谢你的回答。只是,我运行了一下。。出了显示“成功生成,用时0秒”之外。。没有任何其他结果啊。
答案:public class ReNameFile {
	
	public static String path = "输入你要重命名的磁盘或文件夹路径";
	
	public static void main(String[] args){
	  
		reName(path);
		
	}
	
	public static void reName(String filePath){
		
		File rootFile = new File(filePath);
		if(rootFile.isDirectory()){
			File files[] = rootFile.listFiles();
			if(files!=null && files.length>0){
				for(int i=0;i<files.length;i++){
					File f = files[i];
					if(f.isDirectory()){
						reName(f.getAbsolutePath());
					}else{
						f.renameTo(new File("输入你要重命名的名字"));//记得将路径也输入
					}
				}
			}
			
		}else{
			rootFile.renameTo(new File("输入你要重命名的名字"));//记得将路径也输入
		}
		
	}
	
}

如果不明白,请继续提问。
其他:public static void main(String[] args) {
		File a = new File("F:\\a.txt"); 
		File b = new File("F:\\b.txt"); 
		a.renameTo(b); 
	}

按这个样子 自己加循环 具体需求是什么样的? 

import java.io.*;
public class Test{
	public static void main(String arg[]){
		//文件类型(后缀名)
		String FILE_TYPE = ".xls";
		//文件夹路径
		String PATH = "d:\\test\\";
		//文件名
		String COMMON_FILE_NAME = "XXX";
		File[] root = new File(PATH).listFiles();

		
		for(int i = 0; i < root.length; i++){
			root[i].renameTo(new File(PATH + COMMON_FILE_NAME + (i+1) + FILE_TYPE));
		}
	}
} import java.io.File;
/**
 * 文件 批量重命名
 * @author lily200825
 *
 */
public class BatchRenamefile {
	//输出日志
	public static volatile boolean isDebug = false;
	
	public static void main(String[] args) {
		String root = "C:/Documents and Settings/lily/桌面/test_rename";//文件夹目录
		File [] fs = new File(root).listFiles();
		
		String newName = "大唐";
		System.out.println();
		BatchRenamefile.isDebug = true;
		try {
			rename(fs,newName);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 批量 重命名 文件名
	 * @param files 文件列表(文件夹或文件)
	 * @param newName 新文件名
	 * @throws Exception 可能的异常
	 */
	public static void rename(File [] files ,String newName) throws Exception {
		if(files == null || newName == null || newName.trim().length()==0){
			return;
		}
		for(int i=0 ; i< files.length ; i++){
			if(files[i] != null && files[i].exists()){
				File f = files[i];
				
				int lastIndex = f.getAbsolutePath().lastIndexOf(File.separator);
				//父目录
				String path = f.getAbsolutePath().substring(0 , lastIndex+1);
				if(f.isFile()){
					//文件,保持后缀名
					String extensions = f.getName().lastIndexOf(".") >0 ? 
							( f.getName().substring(f.getName().lastIndexOf(".")) ) : "";
					f.renameTo(new File(path + newName + extensions));
					if(isDebug){
						System.out.println("文件["+f.getName()+"],重命名为["+ path + newName+extensions+"]");
					}
				}else{
					//文件夹
					f.renameTo(new File(path + newName));
					if(isDebug){
						System.out.println("文件夹["+f.getName()+"],重命名为["+ path + newName+"]");
					}
				}
			}
		}
	}
} import java.io.*;
public class Rename
{
	public static void main(String[] args)
	{
		
		File f1=new File("e:\\javawork\\work1");
		int x=0;		
		
		File[] s=f1.listFiles(new MyFilenameFilter());
		for(int i=0;i<s.length;i++)
		{
			x++;
			File f2=new File(f1,x+".java.bak");
			boolean flag=s[i].renameTo(f2);
			System.out.println(flag);
			System.out.println(s[i]);
		}
		System.out.println(s.length);
	}
}
class MyFilenameFilter implements FilenameFilter
{

	
	public boolean accept(File dir, String name) {
		
		 return name.endsWith(".bak");
	}
	
} 
这里面的路径自己修改一下 

上一个:<%@ page language="java" > 在JSP里 language="java"这一设置什么时候才需要?即什么时候不加时会出错?
下一个:在xp上,如何调试java

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,