using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone.UserCenter.HideOption { /// /// 查看全部文件 /// public class HideOptionSearchAllFile : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 解密 /// private bool decryptPassword = false; private string nowDirectory = string.Empty; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// public void ShowForm(string directory) { this.nowDirectory = directory; //设置头部信息 base.SetTitleText("文件列表"); var btnButton = new NormalViewControl(200, 69, true); btnButton.Gravity = Gravity.CenterVertical; btnButton.X = bodyFrameLayout.Width - Application.GetRealWidth(200) - HdlControlResourse.XXLeft; btnButton.TextColor = UserCenterColor.Current.TopLayoutTitleText; btnButton.TextAlignment = TextAlignment.BottomRight; btnButton.TextSize = 17; btnButton.Text = "翻译"; topFrameLayout.AddChidren(btnButton); btnButton.ButtonClickEvent += (sender, e) => { if (this.decryptPassword == false) { this.decryptPassword = true; //初始化中部信息 this.InitMiddleFrame(nowDirectory); } }; //初始化中部信息 this.InitMiddleFrame(nowDirectory); this.BackButtonClickEvent = (btnContr) => { string rootPath = Shared.IO.FileUtils.RootPath.Trim('/'); if (this.nowDirectory.Trim('/') == rootPath) { this.CloseForm(); return; } string[] Arry = this.nowDirectory.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); string nextDir = string.Empty; for (int i = 0; i < Arry.Length - 1; i++) { nextDir += Arry[i] + "/"; } //初始化中部信息 this.InitMiddleFrame(nextDir); }; } /// /// 初始化中部信息 /// private void InitMiddleFrame(string directory) { this.nowDirectory = directory; this.ClearBodyFrame(); var listDirectory = new List(); var listAllFile = new List(); //string rootPath = Shared.IO.FileUtils.RootPath.Trim('/'); //if (this.nowDirectory.Trim('/') == rootPath) //{ // //根目录只要两个就可以了 // listDirectory.Add(Common.Config.Instance.Guid); // listDirectory.Add(Application.Skin != null ? Application.Skin : "Phone"); //} //else { var files = System.IO.Directory.GetDirectories(directory); foreach (var file in files) { string[] arry = file.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); listDirectory.Add(arry[arry.Length - 1]); } listDirectory.Sort(); listAllFile = HdlFileLogic.Current.GetFileFromDirectory(directory.TrimEnd('/')); listAllFile.Sort(); } var listView = new VerticalListControl(23); listView.BackgroundColor = UserCenterColor.Current.White; listView.Height = bodyFrameLayout.Height; bodyFrameLayout.AddChidren(listView); if (listDirectory.Count > 0) { var row1 = new RowLayoutControl(listView.rowSpace / 2); listView.AddChidren(row1); row1.frameTable.UseClickStatu = false; row1.frameTable.AddLeftCaption("【文件夹列表】", 800); for (int i = 0; i < listDirectory.Count; i++) { this.AddDirectoryRowControl(listView, listDirectory[i], directory, i != listDirectory.Count - 1); } } if (listAllFile.Count > 0) { var row1 = new RowLayoutControl(listView.rowSpace / 2); listView.AddChidren(row1); row1.frameTable.UseClickStatu = false; row1.frameTable.AddLeftCaption("【文件列表】", 800); for (int i = 0; i < listAllFile.Count; i++) { this.AddFileRowControl(listView, listAllFile[i], directory, i != listAllFile.Count - 1); } } listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(50)); var btnButon = new BottomClickButton(); btnButon.Text = "删除文件夹"; bodyFrameLayout.AddChidren(btnButon); btnButon.ButtonClickEvent += (sender, e) => { this.ShowMassage(ShowMsgType.Confirm, "是否清除该文件夹", () => { try { System.IO.Directory.Delete(directory, true); this.CloseForm(); } catch (Exception ex) { this.ShowMassage(ShowMsgType.Error, "清除缓存文件夹异常"); HdlLogLogic.Current.WriteLog(ex, "清除缓存文件夹异常"); } }); }; if (directory == Common.Config.Instance.FullPath) { btnButon.CanClick = false; } } private void AddDirectoryRowControl(VerticalListControl listView, string directoryName, string directory, bool addLine) { string dirNewName = directoryName; if (decryptPassword == true) { try { dirNewName = HdlCommonLogic.Current.DecryptPassword(HdlUserCenterResourse.FileEncryptKey, directoryName); } catch { dirNewName = directoryName; } } var row1 = new RowLayoutControl(listView.rowSpace / 2); listView.AddChidren(row1); var btnName = row1.frameTable.AddLeftCaption(dirNewName, 800); btnName.IsMoreLines = true; if (addLine == true) { row1.frameTable.AddBottomLine(); } row1.frameTable.AddRightArrow(); row1.frameTable.ButtonClickEvent += (sender, e) => { //初始化中部信息 this.decryptPassword = false; this.InitMiddleFrame(System.IO.Path.Combine(directory, directoryName)); }; } private void AddFileRowControl(VerticalListControl listView, string fileName, string directory, bool addLine) { string fileNewName = fileName; if (decryptPassword == true && fileName.StartsWith("Device_") == false) { try { fileNewName = HdlCommonLogic.Current.DecryptPassword(HdlUserCenterResourse.FileEncryptKey, fileName); } catch { fileNewName = fileName; } } var row1 = new RowLayoutControl(listView.rowSpace / 2); listView.AddChidren(row1); var btnName = row1.frameTable.AddLeftCaption(fileNewName, 800); btnName.IsMoreLines = true; if (addLine == true) { row1.frameTable.AddBottomLine(); } row1.frameTable.AddRightArrow(); var btnReName = row1.AddDeleteControl(); btnReName.Text = "重命名"; btnReName.ButtonClickEvent += (sender, e) => { //生成一个弹窗画面 var dialogForm = new DialogInputControl(360); //保存模板到App dialogForm.SetTitleText("重命名"); //请输入新名字 dialogForm.SetTipText("请输入新名字"); dialogForm.Text = fileName; //按下确认按钮 dialogForm.ComfirmClickEvent += ((textValue) => { //画面关闭 dialogForm.CloseDialog(); if (textValue == string.Empty) { return; } HdlFileLogic.Current.MoveFile(System.IO.Path.Combine(directory, fileName), System.IO.Path.Combine(directory, textValue)); fileNewName = textValue; fileName = textValue; btnName.Text = textValue; }); }; var btnUpLoad = row1.AddEditorControl(); btnUpLoad.Text = "上传"; btnUpLoad.ButtonClickEvent += (sender, e) => { this.ShowMassage(ShowMsgType.Confirm, "是否上传该文件(测试)?", () => { HdlThreadLogic.Current.RunThread(() => { string tagrtFile = System.IO.Path.Combine(directory, fileName); HdlBackupLogic.Current.UpLoadByteDataToOptionBackup(fileNewName, HdlFileLogic.Current.ReadFileByteContent(tagrtFile)); }); }); }; var btnDelete = row1.AddDeleteControl(); btnDelete.ButtonClickEvent += (sender, e) => { this.ShowMassage(ShowMsgType.Confirm, "是否清除该缓存文件", () => { var myFile = System.IO.Path.Combine(directory, fileName); try { System.IO.File.Delete(myFile); row1.RemoveFromParent(); } catch (Exception ex) { this.ShowMassage(ShowMsgType.Error, "清除缓存文件异常"); HdlLogLogic.Current.WriteLog(ex, "清除缓存文件异常"); } }); }; row1.frameTable.ButtonClickEvent += (sender, e) => { var form = new HideOptionFileContentForm(); form.AddForm(System.IO.Path.Combine(directory, fileName)); }; } #endregion #region ■ 一般方法___________________________ #endregion } }