コード例 #1
0
ファイル: AdScene.cs プロジェクト: xfirefly/AD_server
        /// <summary>
        ///  把场景数据拷贝到 tmp 目录, 合并场景json , 生成ad json文件
        /// </summary>
        /// <returns></returns>
        private bool mergeScene(List <string> sceneList, List <string> timingList)
        {
            string[] files = Directory.GetFiles(App.TmpDir);
            foreach (string fn in files)
            {
                File.Delete(fn);
            }

            Toast("正在创建文件, 请稍候!", 5);
            adProgram.scene.Clear();
            removeTmpImage();
            removeTmpVideo();
            //foreach (var item in lbScene.CheckedItems)
            //foreach (var item in sceneList)

            AdZip.Instance.init();
            for (int i = 0; i < sceneList.Count; i++)
            {
                string sceneDir = Path.Combine(App.SceneDir, sceneList[i]);
                log.w("mergeScene " + sceneDir);
                string jsonStr = TextFile.fileToText(Path.Combine(sceneDir, AD_CONFIG_JSON));

                var scene = JsonConvert.DeserializeObject <Scene>(BluCodec.Decode(jsonStr));
                if (timingList.Count > 0)
                {
                    scene.timing = timingList[i];
                }
                adProgram.scene.Add(scene);

                var filteredFiles = Directory
                                    .GetFiles(sceneDir, "*.*")
                                    .Where(file => file.ToLower().EndsWith("jpg") || file.ToLower().EndsWith("png") || file.ToLower().EndsWith("bmp") ||
                                           Path.GetFileName(file).StartsWith(VideoPrefix))
                                    .ToList();
                foreach (var f in filteredFiles)
                {
                    string tmp = Path.Combine(App.TmpDir, Path.GetFileName(f));
                    log.t(f + " => " + tmp);
                    //File.Copy(f, tmp, true);
                    AdZip.Instance.add(f);
                }
            }

            string output = JsonConvert.SerializeObject(adProgram, Formatting.Indented);

            log.t(output);
            output = BluCodec.Encode(output);
            string json = Path.Combine(App.TmpDir, AD_CONFIG_JSON);

            using (StreamWriter sw = new StreamWriter(File.Open(json, FileMode.Create)))
            {
                sw.WriteLine(output);
            }
            AdZip.Instance.add(json);
            AdZip.Instance.save(App.ZipPath);

            return(true);
        }