dpl 文件
2020年8月2日 05:46
其他技术
解释:.dpl 主要为Potplayer直播源列表文件
文件格式
文件头
DAUMPLAYLIST
playname=
topindex=0
saveplaypos=0
playname 为当前播放的地址
topindex 为当前播放的序号,即在列表中的位置
列表项
1*file*地址
1*title*名称
序号从 1 开始
地址行为 序号 + *file* + 地址
标题行为 序号 + *title* + 地址
txt 文件转 dpl
txt 文件每一行格式为
标题,地址
- 获取文件编码
 - 移动到正文开始的位置
 - 写入文件头
 - 循环取每一行,转换并写入
 
Converter(saveFile, sourcefile);
具体转换代码
        const string HEADER_TAG = "DAUMPLAYLIST";
        const string FILE_TAG = "*file*";
        const string TITLE_TAG = "*title*";
        const string NEW_LINE = "\n";
        public static readonly string[] Headers = new string[3]{
            "playname=", // 当前播放的网址
            "topindex=0", // 当前播放的序号
            "saveplaypos=0"
        };
        /// <summary>
        /// 转换文件
        /// </summary>
        /// <param name="dist"></param>
        /// <param name="source"></param>
        public static void Converter(string dist, string source)
        {
            using (var sourceStream = new FileStream(source, FileMode.Open))
            {
                using (var distStream = new FileStream(dist, FileMode.Create))
                {
                    Converter(distStream, sourceStream);
                }
            }
        }
        /// <summary>
        /// 转换文件
        /// </summary>
        /// <param name="dist"></param>
        /// <param name="source"></param>
        public static void Converter(FileStream dist, FileStream source)
        {
            Reset(source);
            var encoder = new TxtEncoder();
            var encoding = encoder.GetEncoding(source);
            source.Seek(encoder.Position, SeekOrigin.Begin);
            var line = ReadLine(source, encoding);
            if...剩余内容已隐藏
查看完整文章以阅读更多