首页 > 其他分享 >更改歌曲后缀-代码备忘录

更改歌曲后缀-代码备忘录

时间:2023-05-01 20:44:14浏览次数:44  
标签:newstr2 String 更改 后缀 newstr1 备忘录 File ogg newstr3

package com.java1234.todo;

import java.io.*;
import java.util.HashMap;
import java.util.Objects;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *  //沈亦晨 - 爱人错过 (小提琴版).flac //留下
 *
 *         //沈亦晨 - 爱人错过 (小提琴版).mp3
 *         //沈亦晨 - 爱人错过 (小提琴版)[mqms].mp3
 *         //沈亦晨 - 爱人错过 (小提琴版)[mqms2].mp3
 *         //沈亦晨 - 爱人错过 (小提琴版).ogg
 *         //沈亦晨 - 爱人错过 (小提琴版)[mqms].ogg
 *         //沈亦晨 - 爱人错过 (小提琴版) [mqms2].ogg
 */
public class FileTodo2 {
    public static void main(String[] args) throws FileNotFoundException {

            String targetDirectory="/root/音乐";
            //搞成文件格式
        File file = new File(targetDirectory);
        //拿到所有文件名
        String[] list = file.list();
        HashMap<String, String> flacMap = new HashMap<>();

        for (int i = 0; i < list.length; i++) {
          String str=  list[i];
            //System.out.println(str);
            /// ---- -   --  -

            if(str.contains("flac")){
                flacMap.put(str.substring(0,str.indexOf(".flac")),"flac");
            }

        }

        for (int i = 0; i < list.length; i++) {
            String str1=  list[i];
            if(str1.contains("mp3")){
                //如果有,则删除
                String newstr1= "";

                String newstr2= "";
                try {
                    newstr2 = str1.substring(0,str1.indexOf("[mqms2].mp3"));
                } catch (Exception e) {
                    newstr2="";
                }
                String newstr3= "";
                try {
                    newstr3 = str1.substring(0,str1.indexOf("[mqms].mp3"));
                } catch (Exception e) {
                    newstr3="";
                }
                try {
                    if("".equals(newstr2)&&"".equals(newstr3)){
                        newstr1 = str1.substring(0,str1.indexOf(".mp3"));
                    }
                } catch (Exception e) {
                    newstr1="";
                }
                if(flacMap.containsKey(newstr1)||flacMap.containsKey(newstr2)||flacMap.containsKey(newstr3)){
                  //判断哪种,直接删除
                  File delfile = new File(targetDirectory +File.separator+ str1);
                  boolean delete = delfile.delete();
                  System.out.println(delfile);
              }else{
                    String newkey=newstr1+newstr2+newstr3;
                  //留下来
                    File updateNameFile = new File(targetDirectory+File.separator+ str1);
                    File renamefile = new File(targetDirectory + File.separator +newkey+ ".flac");
                    boolean flag = updateNameFile.renameTo(renamefile);
                     flacMap.put(newkey,"flac");
                  //转完之后加入到flac中
              }
             }
        }


       

        for (int i = 0; i < list.length; i++) {
            String oggstr1=  list[i];
            if(oggstr1.contains("ogg")){
                //如果有,则删除
                String ogg_newstr1= "";

                String newstr2="";
                try {
                    newstr2 = oggstr1.substring(0,oggstr1.indexOf("[mqms2].ogg"));
                } catch (Exception e) {
                    newstr2="";
                }
                String newstr3= "";
                try {
                    newstr3 = oggstr1.substring(0,oggstr1.indexOf("[mqms].ogg"));
                } catch (Exception e) {
                    newstr3="";
                }
                try {

                    if("".equals(newstr2)&&"".equals(newstr3)){
                        ogg_newstr1 = oggstr1.substring(0,oggstr1.indexOf(".ogg"));

                    }
                } catch (Exception e) {
                    ogg_newstr1="";
                }

                if(flacMap.containsKey(ogg_newstr1)||flacMap.containsKey(newstr2)||flacMap.containsKey(newstr3)){
                    //判断哪种,直接删除
                    File delfile = new File(targetDirectory +File.separator+ oggstr1);
                    boolean delete = delfile.delete();
                    System.out.println(delfile);
                }else{
                    String newkey=ogg_newstr1+newstr2+newstr3;
                    //留下来
                    File updateNameFile = new File(targetDirectory+File.separator+ oggstr1);
                    File renamefile = new File(targetDirectory + File.separator +newkey + ".flac");
                    boolean flag = updateNameFile.renameTo(renamefile);
                     flacMap.put(newkey,"flac");
                }
            }
        }


    }



}

标签:newstr2,String,更改,后缀,newstr1,备忘录,File,ogg,newstr3
From: https://www.cnblogs.com/q1359720840/p/17366976.html

相关文章

  • RTThread的初始化宏(备忘录)
    RTThread的初始化流程方便后续查找.一.初始化接口初始化顺序接口描述1INIT_BOARD_EXPORT(fn)硬件的初始化,此时调度器还未启动2INIT_PREV_EXPORT(fn)主要是用于纯软件的初始化、没有太多依赖的函数3INIT_DEVICE_EXPORT(fn)外设驱动初始化相关,比如网卡设备......
  • 如何更改 git 仓库的远端地址
    首先使用gitremote-v来查看当前仓库关联的远端地址 然后使用gitremoteset-urlorigin<git>,来更新本地仓库关联的远端代码 ......
  • tinyMCE编译器样式更改
    最近用这个,发现固定高度后滚动条的样式还是浏览器自带的,跟现在后台的样式不一样就有点奇怪这是更改前的样式 这是后台全局滚动的样式 差别很大,就想着优化一下,然后就去看了文档,中文文档在这里,看到了一个配置,content_css然后在项目引入tinyMCE的地方新建文件写入想要更改......
  • Windows中qtcreator怎么将编译路径更改为当前目录?
       像VC那样,将执行文件所在debug或release目录,放置到源文件的当前目录是不错的选择。因为便于查找。   要实现这个将编译路径更改为当前目录功能,其实很简单,只需要在项目属性页的“构建目录”所在的编辑框中输入“./”即可。   此时,会在源文件的当前目录中产生......
  • Sqlserver修改表结构提示不允许保存更改。
    在现有的表中去修改或者增加表字段的时候就会提示:不允许保存更改。您所做的更改要求删除并创建一下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项。、如何解决问题:操作步骤:点击“工具”→“选项”→"打开弹窗中选择(设计器)" →"表设......
  • Kotlin基础认知 - 为何Kotlin文件有的带.kt后缀,有的不带?
    有一天看到项目中的Kotlin类,有的有.kt后缀,有的没有,针对这个情况我就简单看了下,然后记录一波创建KotlinClass或KotlinFile创建Kotlinclass创建KotlinFile俩者区别展现形式外部展现内部展现延伸扩展、对向转换Class无后缀→File有后缀File有后......
  • excel更改偶数行内容
    1.判断是否为偶数行=IF(MOD(ROW(),2)=0,真,假)2.截取字符串MID(字符串所在单元格,字符串开始位置,字符串结束位置)3.偶数行截取字符串并添加字符串=IF(MOD(ROW(),2)=0,"Hpu"&MID(A1,3,8)&"#")4.提取数字时出现问题,由于我提取的是最右边字符串,改为下边代码=IF(MO......
  • 《C# in depth》第5章C#5.0中的更改(十二)——指针和非安全编码
    指针类型是一种C#5.0中引入的不安全代码特性,它允许程序员直接访问内存地址,以及使用指向变量和对象的指针。指针类型可以帮助程序员处理一些高性能场景,例如在大型数组中查找数据。指针类型需要使用unsafe关键字定义,表示这段代码中存在潜在的危险操作。在unsafe代码块中,可以......
  • 《C# in depth》第5章C#5.0中的更改(十三)——異步枚舉器
    一、異步枚舉异步枚举器(AsyncEnumerator)是指一种异步迭代器,可以用于处理异步数据源。它允许我们以异步的方式逐个读取数据源中的元素。在传统的同步枚举器中,当我们遍历一个集合时,程序会等待每个元素返回后才能继续执行下一个操作。而在异步枚举器中,我们可以在等待当前元素返回......
  • CSS样式更改——文本Content
    上篇文章主要讲述了CSS样式更改中的背景Background,这篇文章我们来谈谈文本Content内容的基础用法1)).首行缩进文本<divstyle='text-indent:2em'></div>可以设置负数也可使用百分数像素2)).文本对齐方式<divstyle='text-align:center'></div>left左边right右边cen......