指定一个M3U8文件,判断它包含的TS文件是不是都存在。指定一个Office生成的Swf文件,判断它包含的Swf文件是不是完整都存在。
文件 一个 生成 判断 指定 完整 存在 包含
2023-09-27 14:28:13 时间
static void Main(string[] args) { //检查M3u8文件 var fiPath = @"D:\Work\CloudPlatformUtil\CloudPlatformUtil\DoM3u8\M3u8\D5\D5B31B29-02B0-E0B5-AAFC-3406695D5E93.m3u8"; var count = 0; var result=CheckM3U8RealTs(fiPath,out count); Console.WriteLine(result+" "+count); //检查Office生成的swf fiPath = @"D:\BaiduNetdiskDownload\18\18CB654D-FDAC-664D-FE74-F64F884C8F52_1.swf"; result=CheckOfficeSwf(fiPath, out count); Console.WriteLine(result + " " + count); Console.ReadKey(); } /// <summary> /// 功能:给定个office生成的swf文档,查询它共生成了多少个swf文件 /// 作者:黄海 /// 时间:2018-06-11 /// </summary> /// <param name="fiPath"></param> /// <param name="count"></param> /// <returns></returns> public static bool CheckOfficeSwf(string fiPath,out int count) { //计算fiPath所在的目录 var fi = new FileInfo(fiPath); var di = fi.Directory; var files = Directory.GetFiles(di.FullName, "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".swf") && s.StartsWith(di.FullName + "\\" + fi.Name.Substring(0, 36).ToUpper())).ToArray(); var result = true; count = 0; var dict=new Dictionary<int,int>(); foreach (var o in files) { dict[int.Parse(o.Replace(di.FullName + "\\" + fi.Name.Substring(0, 36) + "_", "").Replace(".swf",""))] = 1; } for (var i = 1; i < dict.Count; i++) { if (!dict.ContainsKey(i)) { result = false; break; } else { count = count + 1; } } return result; } /// <summary> /// 功能:给定一个M3U8文件,检查它所在的目录下是不是存在了指定的TS文件,如果缺少1个或多个,则返回False /// 作者: 黄海 /// 时间:2018-06-11 /// </summary> /// <param name="fiPath"></param> /// <param name="count"></param> /// <returns></returns> public static bool CheckM3U8RealTs(string fiPath,out int count) { //计算fiPath所在的目录 var fi=new FileInfo(fiPath); var di = fi.Directory; var result = true; count = 0; //找到M3u8文件列表中的所有ts文件 foreach (var line in File.ReadLines(fiPath)) { //如果是有用的数据,不是以#开头的 if (!(string.IsNullOrWhiteSpace(line) || line.StartsWith("#"))) { //这个TS文件是不是存在呢? var fiTs = new FileInfo(di.FullName + "\\" + line); if (!(File.Exists(fiTs.FullName) && (fiTs.Length > 0))) { result = false; count = 0; break; } else { count = count + 1; } } } return result; }
相关文章
- 007_linux显示一个文件的某几行(中间几行)
- C++-CMake:CMAKE_PREFIX_PATH【一个分号分隔的路径列表,用来指明软件/库安装路径前缀,以供find_××()命令搜索使用,这样就方便搜索可执行文件、头文件、库文件及相关配置】
- Python常用函数:glob.glob():返回所有匹配的文件路径列表、glob.iglob():获取一个可遍历生成器,使用它可以迭代获取匹配的文件路径名
- 未能加载文件或程序集“LinqToExcel”或它的某一个依赖项。试图加载格式不正确的程序。
- EasyRecovery2023重新找回丢失的文件数据恢复软件
- 前端读取Excel报表文件
- VSCODE打开一个文件,另一个文件就关闭的问题的解决方法
- 单片机成长之路(51基础篇) - 027 lcd排灯驱动文件
- Unity Serializable 序列化是干嘛的?场景文件是用啥写的?
- 一个简单验证防火墙是否禁止下载文件的办法
- Wireshark Lua: 一个从RTP抓包里导出H.264 Payload,变成264裸码流文件(xxx.264)的Wireshark插件
- struts 上传文件
- git pull 指定某一个文件或文件夹
- 提取一个文件中的相同的文件类型
- C#底层库--文件操作类(文件重命名、目录移动、字节流转换)
- HTML里用如何包含引用另一个html文件 .
- linux rsyncserver文件同步
- Unity3d 提取mesh并保存成asset文件
- vscode 打开wsl2:ubuntu中的文件进行编辑保存提示没有权限
- mybatis的xml文件中的CDATA的使用
- 根据开始字符串和结束字符串截取文件生成另一个文件(日志处理)【我】
- 解决WebView文件上传无法重复选择问题
- 在零配置的情况下,怎么启动、打包一个.vue文件?
- (转)使用FFMPEG类库分离出多媒体文件中的H.264码流
- 为Tiny4412设备驱动在proc目录下添加一个可读版本信息的文件
- 2018-2-13-win10-uwp-获取指定的文件-AQS
- 从0开始做一个的Vue图片/ 文件选择(上传)组件[基础向]
- android kl文件
- linux文件权限为4755,linux文件权限,普通用户获得root权限
- 删除一个目录和其各级子目录下的.svn文件