音视频按照时长分类小工具

应某用户的需求,编写了这款根据音视频时长分类小工具。

实际效果如下:

显示的是时分秒:

核心代码:

MediaInfo MI;  if (MI.Open(strPathInput.c_str()) == 0){return -1;}_tstring stDuration = MI.Get(stream_t::Stream_Audio,0,_T("Duration/String3")).c_str();if (stDuration.length() == 0){return -1;}//去掉小数点后面的stDuration = CStdStr::GetNameOfFile(stDuration, false);//合法stDuration = CStdStr::ToValidFileName(stDuration, _T('-'));MI.Close(); _tstring strDir = CStdStr::GetDirOfFile(strPathInput);_tstring strRootDir = CStdStr::AddSlashIfNeeded(strDir);if (_access(CStdStr::ws2s(strRootDir).c_str(), 0) != 0 && !CreateDirectory(CString(strRootDir.c_str()), NULL)){return -1;}_tstring stYearMonth = stDuration;_tstring stSaveDir = strRootDir + stYearMonth;const _tstring& sStr = strPathInput;if (_access(CStdStr::ws2s(stSaveDir).c_str(), 0) != 0 && !CreateDirectory(CString(stSaveDir.c_str()), NULL)){return -1;}const _tstring stSaveDirBak(stSaveDir);//如果当前目录已经存在超过nMaxCount个文件,则需要新建目录int nDirIndex = 0;std::vector<_tstring> vFilesExisted;while (g_nMaxCount > 0 && getFiles(stSaveDir, vFilesExisted, "*") >= g_nMaxCount){++nDirIndex;_tstring stSaveDirNew = stSaveDirBak + _T("-") + CStdTpl::ConvertToString(nDirIndex);if (_access(CStdStr::ws2s(stSaveDirNew).c_str(), 0) != 0 && !CreateDirectory(CString(stSaveDirNew.c_str()), NULL)){return -1;}vFilesExisted.clear();stSaveDir = stSaveDirNew;}_tstring strSavePath = CStdStr::AddSlashIfNeeded(stSaveDir) + CStdStr::GetNameOfFile(sStr);g_Mutex.Lock();int nNum = 0;if (CStdFile::IfAccessFile(strSavePath)){do{++nNum;strSavePath = CStdStr::AddSlashIfNeeded(stSaveDir) + CStdStr::GetNameOfFile(sStr, false) + CStdTpl::ConvertToString(nNum) + CStdStr::GetSuffixOfFile(sStr);} while (CStdFile::IfAccessFile(strSavePath));}//查看同目录下,是否存在mp3, mp4, srt文件MoveDefFile(sStr, strSavePath, _T(".mp3"));MoveDefFile(sStr, strSavePath, _T(".mp4"));MoveDefFile(sStr, strSavePath, _T(".srt"));g_Mutex.Unlock();return 0;
}

即可实现,移动到指定目录,上述代码还实现了同名srt等移动到相同目录,这也是因为用户的需求。

欢迎交流与讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/526417.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重建大师出现引擎在正常跑任务,但工程界面却看不到内容的情况,该怎么解决(如下图)?

这个是工程production信息损坏了&#xff0c;数据还在正常跑&#xff0c;不影响最终成果&#xff0c;也可以新建一个procution跑剩下瓦块。 若上步操作完成后&#xff0c;出现任务无法取消的情况&#xff0c;可以尝试停下所有引擎&#xff0c;然后切换一个路径&#xff0c;不用…

visualization_msgs::Marker 的pose设置,map坐标系的3d box显示问题

3D框显示 3D框显示可以使用visualization_msgs::Marker::LINE_LIST或者LINE_STRIP&#xff0c;前者使用方法需要指明线的两个端点&#xff0c;后者自动连接相邻两个点。 姿态问题 网上看了一些&#xff0c;没有涉及到朝向设置&#xff0c;Pose.orientation默认构造为4个0 至…

深度学习图像算法工程师--面试准备(2)

深度学习面试准备 深度学习图像算法工程师–面试准备&#xff08;1&#xff09; 深度学习图像算法工程师–面试准备&#xff08;2&#xff09; 文章目录 深度学习面试准备前言一、Batch Normalization(批归一化)1.1 具体步骤1.2 BN一般用在网络的哪个部分 二、Layer Normaliza…

docker 子网

当需要给容器分配指定 ip &#xff0c;为避免ip 冲突&#xff0c;指定容器子网处理 创建 subnet 子网 docker network create --subnet 10.0.0.0/24 --gateway 10.0.0.1 subnet-testdocker network ls NETWORK ID NAME DRIVER SCOPE ... f582ecf297bc sub…

Windows+conda+TensorRT

WindowsAnaconda配置TensorRT的教程&#xff0c;通过此教程配置完TensorRT后&#xff0c;可以在Anaconda的虚拟环境内使用TensorRT 本文环境为win10 condacuda11.2 利用conda 创建一个虚拟环境yolov8&#xff0c; conda create -n yolov8 python3.9安装CudaToolKit、安装CUD…

Redis精讲

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

Normalizer(归一化)和MinMaxScaler(最小-最大标准化)的区别详解

1.Normalizer&#xff08;归一化&#xff09;&#xff08;更加推荐使用&#xff09; 优点&#xff1a;将每个样本向量的欧几里德长度缩放为1&#xff0c;适用于计算样本之间的相似性。 缺点&#xff1a;只对每个样本的特征进行缩放&#xff0c;不保留原始数据的分布形状。 公式…

提升工作效率,告别Excel,尝试Zoho CRM客户管理!

曾经有客户咨询我们&#xff1a;“EXCEL管理客户功能不够用&#xff0c;但是又觉得CRM管理系统太麻烦&#xff0c;应该如何选择&#xff1f;”这篇文章就告诉您:EXCEL在客户管理方面都有哪些局限性&#xff1f;CRM管理系统都有哪些优势&#xff1f;初创企业应该怎样选择适合的C…

Shell常用脚本:文件或目录一键同步到多台服务器

注意&#xff1a; 将本地文件&#xff0c;同步到【/opt/module/script/xsyncByFileIp.txt】里面的目标机器 xsyncByFile.sh #!/bin/bash# 入参参数个数 argsCount$#if(($argsCount0)); thenecho "同步失败&#xff1a;请输入待同步的文件或者目录" exit; fiecho &q…

二分与前缀和

789. 数的范围 - AcWing题库 import java.util.*;public class Main{static int N 100010;static int[] a new int[N];public static void main(String[] args){Scanner sc new Scanner(System.in);int n sc.nextInt();int m sc.nextInt();for(int i 0; i < n; i ){…

7-16 计算符号函数的值

对于任一整数n&#xff0c;符号函数sign(n)的定义如下&#xff1a; 请编写程序计算该函数对任一输入整数的值。 输入格式: 输入在一行中给出整数n。 输出格式: 在一行中按照格式“sign(n) 函数值”输出该整数n对应的函数值。 输入样例1: 10输出样例1: sign(10) 1输入样…

跨域报错(预请求(OPTIONS)的问题)

查原因 是预请求(OPTIONS)的问题 解决方法&#xff08;后端改&#xff09; 指路博客.NET处理VUE OPTIONS请求问题_.net option请求-CSDN博客