电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java實(shí)現(xiàn)文件重命名

瀏覽:15日期:2022-09-04 16:04:21

背景

我們經(jīng)常在網(wǎng)上下載一些視頻教程,然而這些視頻命名規(guī)則各不相同,即使對(duì)于相同類型的文件名來(lái)說(shuō),當(dāng)文件數(shù)量很大且文件名全部是中文時(shí),文件排序是非規(guī)則的,因此本篇博客主要講解一種改變文件夾名稱使得文件按照規(guī)律進(jìn)行排序。

思路

根據(jù)文件名對(duì)文件進(jìn)行排序,然后重命名文件即可。

代碼

規(guī)則:如 將文件名中帶有 “第八講 ”替換成“8”:

構(gòu)建排序規(guī)則

/*** * @param filePath 文件夾位置 * @param startWorld 開(kāi)始替換的字 * @param endWorld 結(jié)束替換的字*/ private void ReName(String filePath, String startWorld, String endWorld) { File file = new File(filePath); if (!file.exists() || !file.isDirectory()) { System.out.println('文件不存在'); return; } String[] list = file.list(); //以 第xxx講-文件全名 的鍵值對(duì)存儲(chǔ)文件 HashMap<String, String> paths = new HashMap<String, String>(); for (String str : list) { int start = str.indexOf(startWorld) + 1; int end = str.indexOf(endWorld); if (start != 0 && end != -1) {paths.put(str.substring(start, end), str); } else {System.out.println('文件 ' + str + ' 不滿足替換條件'); } } //對(duì)文件名進(jìn)行排序 orderPath(filePath, endWorld, paths); }

排序

private void orderPath(String filePath, String endWorld, HashMap<String, String> paths) { if (paths.isEmpty()) { return; } TreeMap<Integer, String> map = new TreeMap<Integer, String>(); for (String str : paths.keySet()) { map.put(parseInt(str), paths.get(str)); } //重命名該文件 ReNameFile(filePath, endWorld, map); }

重命名

private void ReNameFile(String filePath, String endWorld, TreeMap<Integer, String> map) { for (int i : map.keySet()) { String path = map.get(i); File f = new File(filePath + File.separator + path); File dest = new File(filePath + File.separator + i + path.substring(path.indexOf(endWorld) + 1)); if (f.exists() && !dest.exists()) {f.renameTo(dest); } f = null; dest = null; } }

將中文描述的數(shù)字轉(zhuǎn)換為數(shù)字,如將 一百二十轉(zhuǎn)換為120

private int parseInt(String str) { if (str.length() == 1) { if (str.equals('十')) {return 10; } return getInt(str.charAt(0)); } else { StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c != ’百’ && c != ’十’) { sb.append(getInt(c));} } int res = Integer.parseInt(sb.toString()); if (str.charAt(str.length() - 1) == ’百’) {res *= 100; } else if (str.charAt(str.length() - 1) == ’十’) {res *= 10; } if (str.charAt(0) == ’十’) {res += 10; } return res; } }

完整代碼

import java.io.File;import java.util.HashMap;import java.util.TreeMap;/** * 將一個(gè)文件夾中所有滿足條件的文件名替換 * <p> * 條件:將從開(kāi)始字到結(jié)束字的字符串替換成對(duì)應(yīng)的數(shù)字 * <p> * 如:第八講 替換成 8 */public class Main { public static void main(String[] args) { Main m = new Main(); // 文件夾位置 String filePath = 'D:新建文件夾OOAD與UML教學(xué)視頻'; // 從哪個(gè)字(startWorld)開(kāi)始替換到哪個(gè)字(endWorld)結(jié)束 String startWorld = '第'; String endWorld = '講'; m.ReName(filePath, startWorld, endWorld); } /*** * @param filePath 文件夾位置 * @param startWorld 開(kāi)始替換的字 * @param endWorld 結(jié)束替換的字 */ private void ReName(String filePath, String startWorld, String endWorld) { File file = new File(filePath); if (!file.exists() || !file.isDirectory()) { System.out.println('文件不存在'); return; } String[] list = file.list(); //以 第xxx講-文件全名 的鍵值對(duì)存儲(chǔ)文件 HashMap<String, String> paths = new HashMap<String, String>(); for (String str : list) { int start = str.indexOf(startWorld) + 1; int end = str.indexOf(endWorld); if (start != 0 && end != -1) {paths.put(str.substring(start, end), str); } else {System.out.println('文件 ' + str + ' 不滿足替換條件'); } } //對(duì)文件名進(jìn)行排序 orderPath(filePath, endWorld, paths); } private void orderPath(String filePath, String endWorld, HashMap<String, String> paths) { if (paths.isEmpty()) { return; } TreeMap<Integer, String> map = new TreeMap<Integer, String>(); for (String str : paths.keySet()) { map.put(parseInt(str), paths.get(str)); } //重命名該文件 ReNameFile(filePath, endWorld, map); } private void ReNameFile(String filePath, String endWorld, TreeMap<Integer, String> map) { for (int i : map.keySet()) { String path = map.get(i); File f = new File(filePath + File.separator + path); File dest = new File(filePath + File.separator + i + path.substring(path.indexOf(endWorld) + 1)); if (f.exists() && !dest.exists()) {f.renameTo(dest); } f = null; dest = null; } } private int parseInt(String str) { if (str.length() == 1) { if (str.equals('十')) {return 10; } return getInt(str.charAt(0)); } else { StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c != ’百’ && c != ’十’) { sb.append(getInt(c));} } int res = Integer.parseInt(sb.toString()); if (str.charAt(str.length() - 1) == ’百’) {res *= 100; } else if (str.charAt(str.length() - 1) == ’十’) {res *= 10; } if (str.charAt(0) == ’十’) {res += 10; } return res; } } private int getInt(char c) { int res = -1; switch (c) { case ’一’: res = 1; break; case ’二’: res = 2; break; case ’三’: res = 3; break; case ’四’: res = 4; break; case ’五’: res = 5; break; case ’六’: res = 6; break; case ’七’: res = 7; break; case ’八’: res = 8; break; case ’九’: res = 9; break; case ’零’: res = 0; break; } return res; }}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 北京百度网站优化|北京网站建设公司-百谷网络科技 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司| 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 自动焊锡机_点胶机_螺丝机-锐驰机器人 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 计算机毕业设计源码网| 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 护栏打桩机-打桩机厂家-恒新重工 | 模具ERP_模具管理系统_模具mes_模具进度管理_东莞市精纬软件有限公司 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 湖北省煤炭供应链综合服务平台 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 伺服电机维修、驱动器维修「安川|三菱|松下」伺服维修公司-深圳华创益 | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 天津电机维修|水泵维修-天津晟佳机电设备有限公司 | 浙江建筑资质代办_二级房建_市政_电力_安许_劳务资质办理公司 | 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 螺钉式热电偶_便携式温度传感器_压簧式热电偶|无锡联泰仪表有限公司|首页 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 热处理温控箱,热处理控制箱厂家-吴江市兴达电热设备厂 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 |