static void Main(string[] args)
{
//检查M3u8文件
var fiPath =
@"D:\Work\CloudPlatformUtil\CloudPlatformUtil\DoM3u8\M3u8\D5\D5B31B29-02B0-E0B5-AAFC-3406695D5E93.m3u8";
var count = ;
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(, ).ToUpper())).ToArray(); var result = true;
count = ;
var dict=new Dictionary<int,int>();
foreach (var o in files)
{
dict[int.Parse(o.Replace(di.FullName + "\\" + fi.Name.Substring(, ) + "_", "").Replace(".swf",""))] = ;
} for (var i = ; i < dict.Count; i++)
{
if (!dict.ContainsKey(i))
{
result = false;
break;
}
else
{
count = count + ;
}
}
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 = ;
//找到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 > )))
{
result = false;
count = ;
break;
}
else
{
count = count + ;
}
}
}
return result;
}

指定一个M3U8文件,判断它包含的TS文件是不是都存在。指定一个Office生成的Swf文件,判断它包含的Swf文件是不是完整都存在。的更多相关文章

  1. WORKDIR 指定工作目录 每一个 RUN 都是启动一个容器、执行命令、然后提交存储层文件变更

    WORKDIR 指定工作目录 格式为 WORKDIR <工作目录路径>. 使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不 ...

  2. Java IO流操作(III)——File类&案例一:输出制定目录下所有java文件名(包含子目录)&案例二:删除指定的目录(包含子目录)

    1. File常用的构造 File file = new File("字符串路径"); File f = new File("D:\\a\\b.txt"); F ...

  3. 通过wget工具下载指定文件中的URLs对应的资源并保存到指定的本地目录中去并进行文件完整性与可靠性校验

    创建URLs文件在终端输入cd target_directory回车,便把当前文件夹切换到了目标文件夹target_directory,此后创建的文件都会丢它里面在终端输入cat > URLs回 ...

  4. Python3 根据m3u8下载视频,批量下载ts文件并且合并

    Python3 根据m3u8下载视频,批量下载ts文件并且合并 m3u8是苹果公司推出一种视频播放标准,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少 ...

  5. 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

    题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...

  6. JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数.

    怎么使float保留两位小数或多位小数 http://meryvn.blog.163.com/blog/static/36962664201173010402629/ 两种方法: import   j ...

  7. Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件

    Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容. 但是用这个脚本的同 ...

  8. 从TS流定位H264的每一个视频帧开始,判断出帧类型

    从TS流定位H264的每一个视频帧开始,判断出帧类型(待续)

  9. C# FTP上传文件时出现"应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址。"的错误

    FTP上传文件时出现"应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址."的错误 解决方法是在原代码上增加这句话 reqFTP.UsePassive = f ...

随机推荐

  1. Kafka记录-Kafka简介与单机部署测试

    1.Kafka简介 kafka-分布式发布-订阅消息系统,开发语言-Scala,协议-仿AMQP,不支持事务,支持集群,支持负载均衡,支持zk动态扩容 2.Kafka的架构组件 1.话题(Topic) ...

  2. jQuery EasyUI Datagrid性能优化专题

    jQuery  EasyUI的Datagrid组件功能算是很强大了,不过性能确实不怎么乐观,而对于性能问题,网络上几乎也找不到相关的优化资料,所谓的牛人们可能都望而却步了.本博客以后会带着分析Data ...

  3. poi-对于word的操作(一)

    2017-03-02 15:17:30 使用的jar包是poi 3.13 实现对word的存入,字体.颜色.大小的控制 测试类: package poi.test; public class Word ...

  4. CentOS下查找java环境变量

    CentOS下通过命令查找java环境变量 [root@yuteng opt]# echo $JAVA_HOME /usr/java/default [root@yuteng opt]# which ...

  5. hive vs hbase

    HIVE和HBASE区别 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库.通过Hive可以使用HQL语言查询存放在HDFS上的数据.HQL是一种类SQL语言,这 ...

  6. Python实现Plugin

    1. Plugin与Python 插件的历史最早可追溯至1970年代,它是一种程序组件,通过和应用程序的互动,为应用程序增加一些所需要的特定的功能[维基].插件允许第三方开发者对已有的程序功能进行扩展 ...

  7. 20155215 2016-2017-2 《Java程序设计》第9周学习总结

    20155215 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 JDBC入门 - JDBC(Java DataBase Connectivity) ...

  8. JavaScript之复杂对象的深拷贝(完全深拷贝)

    由于网上很多的深拷贝大都有如下问题: 1.灵活性.不能应对复杂对象(复杂对象是指:单一数组对象.多数组对象.多非数组对象.单一对象组合形成的复杂对象)的灵活拷贝 2.不变性.即 拷贝的对象与原对象的结 ...

  9. VMware12虚拟机中Ubuntu16.04安装CPU版本Caffe

    首先,可以自行下载VMware12进行安装,基本上都是直接点击‘下一步’直到安装完成,这里重点讲一下Ubuntu16及Caffe的安装步骤 第一步: 下载Ubuntu16.04版本的文件,这里给出链接 ...

  10. Jetson tk1 刷机后要做的几件事

    参考简书文章: http://www.jianshu.com/p/997ede860d74 1. 查看Jetson TK1 L4T版本 head -n 1 /etc/nv_tegra_release ...