zoukankan      html  css  js  c++  java
  • 指定一个M3U8文件,判断它包含的TS文件是不是都存在。指定一个Office生成的Swf文件,判断它包含的Swf文件是不是完整都存在。

    static void Main(string[] args)
            {
                //检查M3u8文件
                var fiPath =
                    @"D:WorkCloudPlatformUtilCloudPlatformUtilDoM3u8M3u8D5D5B31B29-02B0-E0B5-AAFC-3406695D5E93.m3u8";
                var count = 0;
                var result=CheckM3U8RealTs(fiPath,out count);
                Console.WriteLine(result+"  "+count);
    
    
                //检查Office生成的swf
                fiPath = @"D:BaiduNetdiskDownload1818CB654D-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;
            }
  • 相关阅读:
    Javascript函数声明和函数表达式
    浅谈getAttribute兼容性
    js数组去重的三种常用方法总结
    说说JSON和JSONP,也许你会豁然开朗
    web安全之跨站请求伪造
    javascript中对象的深度克隆
    三种方式实现元素水平居中显示与固定布局和流式布局概念理解
    js dom element 属性整理(原创)
    ul下的li浮动,如何是ul有li的高度
    js数组去重的4个方法
  • 原文地址:https://www.cnblogs.com/littlehb/p/9169145.html
Copyright © 2011-2022 走看看