private void OnGUI_Table(Rect rect)
 {
     if (m_FileTree == null)
     {
         var column = PatchFileInfo.totalColumn;
         m_FileTree = EditorTable.CreateTable(column);
         for (int i = 0; i < column; i++)
         {
             m_FileTree.SetColumnHeader(i, PatchFileInfo.GetColumnHeader(i));
         }
         m_FileTree.OnSelectionChanged  = OnSelectedFileList;
         m_FileTree.OnDoubleClickedItem = OnDoubleClickedItem;
         RefreshFileList();
         m_FileTree.Reload();
     }
     m_FileTree.OnGUI(rect);
 }
        private void RefreshFileList()
        {
            if (m_FileTree == null)
            {
                return;
            }
            if (!Directory.Exists(m_LocalPath))
            {
                Debug.LogError("lcoalPath not exist:" + m_LocalPath);
                return;
            }
            m_FileList.Clear();
            m_FileTotalSize  = 0;
            m_FileTotalCount = 0;

            var back   = new PatchFileInfo();
            var parent = RemoteDebugUtil.GetParentPath(m_LocalPath);

            back.name      = "..";
            back.assetPath = parent;
            back.size      = 0;
            back.type      = 0;
            back.datetime  = new FileInfo(parent).LastWriteTime.ToString("yyyy/MM/dd HH:mm:ss");
            back.assetIcon = RemoteDebugStyles.iconFolder;
            m_FileList.Add(back);

            foreach (var path in Directory.GetDirectories(m_LocalPath))
            {
                var folder = Path.GetFileName(path);
                if (IsFilter(path) || IsFilterFolder(folder) || !IsSearchFileName(folder))
                {
                    continue;
                }
                var fi   = new FileInfo(path);
                var info = new PatchFileInfo();
                info.name      = folder;
                info.assetPath = path;
                info.size      = 0;
                info.type      = 1;
                info.datetime  = fi.LastWriteTime.ToString("yyyy/MM/dd HH:mm:ss");
                info.assetIcon = RemoteDebugStyles.iconFolder;
                m_FileList.Add(info);
                m_FileTotalCount++;
            }
            foreach (var path in Directory.GetFiles(m_LocalPath))
            {
                if (IsFilter(path))
                {
                    continue;
                }
                var fileName = Path.GetFileName(path);
                if (!IsSearchFileName(fileName))
                {
                    continue;
                }
                var fi   = new FileInfo(path);
                var info = new PatchFileInfo();
                info.name      = fileName;
                info.assetPath = path;
                info.size      = (int)fi.Length;
                info.type      = 2;
                info.datetime  = fi.LastWriteTime.ToString("yyyy/MM/dd HH:mm:ss");
                info.assetIcon = RemoteDebugStyles.iconFile;
                m_FileList.Add(info);
                m_FileTotalSize += info.size;
                m_FileTotalCount++;
            }
            m_FileTree.UpdateInfoList(m_FileList);
            Repaint();
        }