コード例 #1
0
        internal static List <IExplorerObject> Refresh(IExplorerObject parent, string FullName)
        {
            List <IExplorerObject> childs = new List <IExplorerObject>();

            try
            {
                foreach (string subdir in Directory.GetDirectories(FullName))
                {
                    DirectoryInfo di = new DirectoryInfo(subdir);
                    childs.Add(new DirectoryObject(parent, di.FullName));
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
                return(null);
            }

            gView.Framework.system.PlugInManager manager = new gView.Framework.system.PlugInManager();

            foreach (XmlElement exObjectNode in manager.GetPluginNodes(Plugins.Type.IExplorerObject))
            {
                IExplorerObject exObj = (IExplorerObject)manager.CreateInstance(exObjectNode);
                if (!(exObj is IExplorerFileObject))
                {
                    continue;
                }

                foreach (string filter in ((IExplorerFileObject)exObj).Filter.Split('|'))
                {
                    foreach (string file in Directory.GetFiles(FullName, filter))
                    {
                        FileInfo            fi  = new FileInfo(file);
                        IExplorerFileObject obj = ((IExplorerFileObject)exObj).CreateInstance(parent, fi.FullName);
                        if (obj == null)
                        {
                            continue;
                        }

                        childs.Add(obj);
                    }
                }
            }

            return(childs);
        }