Exemple #1
0
        /// <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;
        }