/// <summary>
        /// ディレクトリの間の位置の文字列を作る
        /// </summary>
        /// <param name="name">文字列</param>
        /// <param name="position">位置</param>
        /// <returns></returns>
        private bool MakeBetweenDirName(ref string name, ref IMG_DIRLEVEL position)
        {
            IMG_DIRLEVEL [] aDir;
            IMG_DIRLEVEL    tmpDir;
            int             i;

            if (position.Level != 0)
            {
                tmpDir = position;
                aDir   = new IMG_DIRLEVEL[position.Level];

                for (i = position.Level - 1; i >= 0; i--)
                {
                    aDir[i] = tmpDir;

                    tmpDir = tmpDir.Parent;
                }
                for (i = 0; i < position.Level; i++)
                {
                    name += aDir[i].DirName;
                    name += @"\";
                }

                aDir = null;
            }
            return(true);
        }
        /// <summary>
        /// ディレクトリの文字列をセット
        /// </summary>
        /// <returns>何もなければtureを返す</returns>
        private bool ComboBoxDataSet()
        {
            cbDir.Items.Clear();
            //DeleteImgDirLevel(m_rImgDirLv);

            m_startImageDir = new IMG_DIRLEVEL();

            m_startImageDir.Level     = 0;
            m_startImageDir.Next      = null;
            m_startImageDir.NextLevel = null;
            m_startImageDir.Parent    = null;
            m_startImageDir.DirName   = null;

            m_startImageDir.DirName += @".\";
            m_startImageDir.Level    = 0;

            if (!DirectorySearch(ref m_startImageDir.NextLevel, ref m_startImageDir))
            {
                return(false);
            }

            // 項目をComboBoxExに反映させる
            m_dirNum = 0;

            SetComboBoxItem(ref m_startImageDir);

            return(true);
        }
        /// <summary>
        /// 最終階層までディレクトリを探索し、コンボボックスに反映させる
        /// </summary>
        /// <param name="rImgDirLv"></param>
        /// <param name="rParent"></param>
        /// <returns></returns>
        private bool DirectorySearch(ref IMG_DIRLEVEL rImgDirLv, ref IMG_DIRLEVEL rParent)
        {
            IMG_DIRLEVEL firstTmpDir = null, tmpDir = null;
            string       fileFolder;

            tmpDir = rParent;
            //
            fileFolder  = CommonMC2D.Instance.DirPathMC2D;
            fileFolder += @"\Media\images\";

            MakeBetweenDirName(ref fileFolder, ref rParent);
            //strFileFolder += "*.*";

            //DirectoryInfoを作成
            DirectoryInfo di = new DirectoryInfo(fileFolder);               //パスを指定

            //ディレクトリ一覧の取得
            DirectoryInfo[] dis = di.GetDirectories("*.*");             //パターンを指定
            for (int i = 0; i < dis.Length; i++)
            {
                //---- ディレクトリのデータを取得する
                //   そして作成
                tmpDir           = new IMG_DIRLEVEL();
                tmpDir.Level     = rParent.Level + 1;
                tmpDir.Next      = null;
                tmpDir.NextLevel = null;
                tmpDir.Parent    = rParent;
                tmpDir.DirName   = dis[i].Name;
                if (i == 0)
                {
                    firstTmpDir = tmpDir;
                }
                //---- 次の層のディレクトリを読み込む
                if (!this.DirectorySearch(ref tmpDir.NextLevel, ref tmpDir))
                {
                    return(false);
                }

                tmpDir = tmpDir.Next;
            }
            rImgDirLv = firstTmpDir;
            return(true);
        }
        /// <summary>
        /// 一つ上のそうのディレクトリに戻る
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UpDir_Click(object sender, EventArgs e)
        {
            string fileFolder;

            m_rDirLvTarget = m_rDirLvTarget.Parent;

            // ディレクトリが初期位置になったら
            if (m_rDirLvTarget.Level == 0)
            {
                btnHome.Enabled = false;
            }

            fileFolder   = @".\";
            m_betweenDir = "";
            MakeBetweenDirName(ref m_betweenDir, ref m_rDirLvTarget);
            fileFolder        += m_betweenDir;
            btnHome.Text       = fileFolder;
            btnHome.ImageIndex = 0;
            SearchImageFile();
        }
        /// <summary>
        /// IMG_DIRLEVELのデータから、ComboBoxExに項目を反映させる
        /// </summary>
        /// <param name="parentImageDir"></param>
        /// <returns></returns>
        private bool SetComboBoxItem(ref IMG_DIRLEVEL parentImageDir)
        {
            ComboboxItem item = new ComboboxItem();

            item.Text        = parentImageDir.DirName;
            item.IndentLevel = parentImageDir.Level;
            item.Item        = parentImageDir;

            cbDir.Items.Add(item);
            ++m_dirNum;
            if (parentImageDir.NextLevel != null)
            {
                SetComboBoxItem(ref parentImageDir.NextLevel);
            }
            if (parentImageDir.Next != null)
            {
                SetComboBoxItem(ref parentImageDir.Next);
            }
            cbDir.SelectedIndex = 0;
            return(true);
        }