public IExplorerObject DeserializeExplorerObject(string FullName) { IExplorerObject cached = GetExObjectFromCache(FullName); if (cached != null) { return(cached); } PlugInManager compManager = new PlugInManager(); foreach (XmlNode exNode in compManager.GetPluginNodes(Plugins.Type.IExplorerObject)) { IExplorerObject exObject = (IExplorerObject)compManager.CreateInstance(exNode); if (!(exObject is ISerializableExplorerObject)) { continue; } exObject = ((ISerializableExplorerObject)exObject).CreateInstanceByFullName(FullName, this); if (exObject != null) { return(exObject); } } return(null); }
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); }