java如何处理linux名字乱码批量重命名问题
来源:互联网 发布:淘宝推广工具 编辑:程序博客网 时间:2024/05/21 10:36
对于一般批量文件重命名处理:
// 第一种public static void main(String[] args) throws IOException { File[] files = new File("/xxxxx/xxx").listFiles(); int num = 1; for (File file : files) { // System.out.println("修改前文件名称是:"+file.getName()); String rootPath = file.getParent(); // System.out.println("根路径是:"+rootPath); File newFile = new File(rootPath + File.separator + num+"newname"); // System.out.println("修改后文件名称是:"+newFile.getName()); if (file.renameTo(newFile)) { System.out.println("修改成功!"); num++; } else { System.out.println("修改失败!"); } }}
但是上述方法在文件名乱码的情况下就失效了,所以需要下面的方法:
在linux底下,文件都有一个对应的索引的,可以通过ls -i >> inums.txt,命令先将索引号输出到一个inums.txt文件,然后拿到文件的索引号,再通过索引号来更改文件名。
//第二种public static void main(String[] args) throws IOException { File file = new File("/xxx/inums.txt"); ArrayList<String> inums = new ArrayList<String>(); int num = 1; BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file))); String lineTxt = null; while ((lineTxt = bufferedReader.readLine()) != null) { inums.add(lineTxt.split(" ")[0]); } bufferedReader.close(); for (String inum : inums) { cmd(inum,num); num++; }}public static void cmd(String inum, int num) { try { String cmd = "find /oldpath -inum " + inum + " -exec mv {} /newpath" + num + "newname \\;"; String[] cmds = new String[] { "sh", "-c", cmd }; System.out.println(cmd); //注意:不能直接使用Process ps = Runtime.getRuntime().exec(cmd); Process ps = Runtime.getRuntime().exec(cmds); ps.waitFor(); } catch (Exception e) { System.out.println(e); }}
阅读全文
0 0
- java如何处理linux名字乱码批量重命名问题
- Linux 文件夹名字有空格,如何重命名?
- java 重命名文件名字
- 下载excel文件名字乱码问题处理
- 下载excel文件名字乱码问题处理
- python批量重命名乱码文件
- linux -- 批量重命名文件名
- linux批量重命名方法
- Linux批量重命名文件
- linux批量重命名
- Linux批量重命名
- Linux下批量重命名
- linux 批量重命名
- Linux下批量重命名
- linux批量重命名
- Java批量重命名文件
- java 批量重命名文件
- Java批量文件重命名
- Android的Handler机制
- Java将字符串按指定长度分割
- Linux上配置Jupyter Notebook远程访问
- Java多线程:notify/notifyAll/wait/sleep在多线程中的区别于使用
- spring -IOC和DI
- java如何处理linux名字乱码批量重命名问题
- 基于WebSocket的网页端即时通讯
- laravel databas
- (转)Android 使用极光/友盟推送,APP进程杀死后为什么收不到推送
- servlet session管理之一 重写
- as gradle和gradle插件的配置
- Uva10795 新汉诺塔问题(转化模型,经典题)
- php快速高效验证邮箱,长度限制
- Python编程笔记