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) - ControlCommonResourse.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 = HdlAutoBackupLogic.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)); } private void AddDirectoryRowControl(VerticalListControl listView, string directoryName, string directory, bool addLine) { string dirNewName = directoryName; if (decryptPassword == true) { try { dirNewName = UserCenterLogic.DecryptPassword(UserCenterResourse.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 = UserCenterLogic.DecryptPassword(UserCenterResourse.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 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 } }