欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

批量删除和修改文件名前缀

程序员文章站 2022-05-04 08:54:53
批量删除和修改文件名前缀利用File类和String类的常用方法1.1 修改目标修改前修改后1.2 用到的APIjava.lang.String返回值方法Stringreplace(char oldChar, char newChar)返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar 。booleanstartsWith(String prefix)测试此字符串是否以指定的前缀开头。Stringsubstring(int b...

批量删除和修改文件名前缀

利用File类和String类的常用方法

1.1 修改目标

修改前

批量删除和修改文件名前缀

修改后
批量删除和修改文件名前缀

1.2 用到的API

java.lang.String

返回值 方法
String replace(char oldChar, char newChar)
返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar
boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开头。
String substring(int beginIndex)
返回一个字符串,该字符串是此字符串的子字符串。

java.io.File

返回值 方法
boolean renameTo(File dest)
重命名由此抽象路径名表示的文件。
File[] listFiles()
返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
String getParent()
返回此抽象路径名的父 null的路径名字符串,如果此路径名未命名为父目录,则返回null。
String getName()
返回由此抽象路径名表示的文件或目录的名称。

1.3 思路

  1. 通过绝对路径新建File对象
  2. 通过listFiles()方法返回该文件夹内的所有文件对应的File对象
  3. 通过getName()方法获得原来的文件名,并通过String的方法实现增加前缀和删除前缀的方法,最后根据修改后的String联合getName()和"\\"生成新的File文件
  4. 写addPrefix方法,通过遍历files数组对每一个file对象用renameTo(File dest)方法重命名为加了前缀后的File对象

1.4 代码

package test;

import jdk.nashorn.internal.ir.CallNode;

import java.io.File;

public class FileTest {
    public static void main(String[] args) {
        File file = new File("F:\\BilibiliDown\\2020JAVA基础-深入系统的学习数据结构与算法");
        System.out.println(file.getAbsolutePath());
        File[] files = file.listFiles();
        //加上前缀
        for (File file1 : files) {
            String prefix = "2020JAVA基础-深入系统的学习数据结构与算法 - ";
            addPrefix("2020JAVA基础-深入系统的学习数据结构与算法 - ", file1);
        }
        //删除前缀
        for (File file1 : files) {
            String prefix = "2020JAVA基础-深入系统的学习数据结构与算法 - ";
            deletePrefix(prefix, file1);
        }
    }

    public static void addPrefix(String prefix, File file1) {
        String name = file1.getName();
        File file2 = new File(file1.getParent() + "\\" + prefix + name);
        file1.renameTo(file2);

    }

    public static void deletePrefix(String prefix, File file1) {
        int length = prefix.length();
        String name = file1.getName();
        File file2 = new File(file1.getParent() + "\\" + name.substring(length));
        file1.renameTo(file2);
    }
}

1.5 总结

起因是因为在potplayer中添加播放列表后,因为文件名都有一个相同的28个字符的前缀所以,导致右侧播放列表面板需要拉宽才能看到对应的章节名,所以想删除相同的前缀,学了IO以来也并没有怎么实际应用,所以试试水,同时加深下理解和记忆.

本文地址:https://blog.csdn.net/qq_34506038/article/details/107350170