/// <summary> /// 重新產生分頁的頁籖 /// </summary> public void func_分頁重新整理(bool bool_第一次執行 = false) { func_單層目錄(); if (bool_第一次執行 == false) { //儲存目前的設定值 SET.s_資料夾順序 = func_取得資料夾順序(); SET.s_目前選取的資料夾 = c_分頁.b_but_text.Text; } String s_dir = func_取得儲存根目錄(); //讀取 List <String> ar_dir = new List <string>(); //之前儲存的設定值 foreach (var item in SET.s_資料夾順序.Split('\t')) { if (item.Trim() != "") { if (Directory.Exists(s_dir + "\\" + item.Trim())) { ar_dir.Add(item); } } } //實際存在的資料夾 String[] ar_file = Directory.GetDirectories(s_dir); Array.Sort(ar_file, new Sort_自然排序_正());//自然排序 foreach (var item in ar_file) { String s2 = System.IO.Path.GetFileName(item); if (Directory.Exists(item)) { if (ar_dir.Contains(s2) == false) { ar_dir.Add(s2); } } } //如果沒有子資料夾 if (ar_dir.Count == 0) { //新增資料夾 if (bool_單層儲存路徑 == false) { Directory.CreateDirectory(s_dir + "\\" + "New Folder 1"); } ar_dir.Add("New Folder 1"); } //刪除所有項目 c_分頁.fun_delete_all(); foreach (var item in ar_dir) { var bu = new U_分頁_item { Text = item }; bu.func_初始化(this); c_分頁.fun_addEvent(bu); if (item == SET.s_目前選取的資料夾) { c_分頁.fun_SetSelect(bu); } } //如果都沒有選擇任何頁籖,就用選擇第一個 if (c_分頁.b_but_text == null) { c_分頁.fun_SetSelect((U_分頁_item)stackPanel_1.Children[0]); } //儲存目前的設定值 SET.s_資料夾順序 = func_取得資料夾順序(); SET.s_目前選取的資料夾 = c_分頁.b_but_text.Text; }