批量修改文件夾下的文件名稱以及子文件夾下的文件名稱

批量修改文件夾下的文件名稱以及子文件夾下的文件名稱

貼代碼,話不多說

package com.jnd.text;

import java.io.File;

public class Myfiles {
	public static void main(String[] args) {
		name("F:\\測試");//引號裏面改成你想要改的文件夾所在的路徑
}
public static int name(String path) {
	//0:文件夾
	int t=0;
	File f = new File(path);
	if(f.isDirectory()){
	//如果不需要更改文件夾下面文件夾裏面的文件名稱,就把這幾行註釋了
			System.out.println("路徑是目錄");//如果是文件夾(Midir)
			File[] fs=f.listFiles();//獲取文件夾下的所有文件
			for (File file : fs) {
				System.out.println(file.getName());
				name(file.getPath());//循環判斷文件夾下列表是不是文件夾
			}
		}else{
			System.out.println(f.getName().substring(0,f.getName().indexOf(".") ));
			System.out.println("路徑不是目錄"); //不是文件夾
			System.out.println("修改前文件名稱是:"+f.getName());
			String mypath = f.getParent();//獲取文件所在路徑
			String pname = f.getParentFile().getName()+".";//獲取父文件夾的名稱
			if(!pname.equals(f.getName().substring(0, f.getName().indexOf(".")+1))){//判斷該文件名稱是否已經以父文件夾的名稱開頭
				System.out.println("根路徑是:"+mypath+",上一級文件夾名爲:"+pname);
				File newFile = new File(mypath + File.separator +pname+f.getName() );//重新更新文件
				System.out.println("修改後文件名稱是:"+newFile.getName());
				if (f.renameTo(newFile)) {
					System.out.println("修改成功!");
				}else {
					System.out.println("修改失敗");
				}
			}
		}
		
		return t;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章