/// <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); }