public override XeFileInfo[] LoadDirectory(ref Uri uri) { if(!LoadsUriType(uri)) throw new ArgumentException(); //System.Threading.Thread.Sleep(1000); DirectoryInfo di = new DirectoryInfo(uri.GetScrubbedLocalPath()); Console.WriteLine("file://" + di.FullName.TrimEnd('\\', '/') + Path.DirectorySeparatorChar); uri = new Uri("file://" + di.FullName.TrimEnd('\\', '/') + Path.DirectorySeparatorChar); Console.WriteLine(uri.ToString()); DirectoryInfo[] di2 = di.GetDirectories(); FileInfo[] fi = di.GetFiles(); int extra = ((bool)SettingsUtil.MainSettings["show..item"].data && di.Parent != null) ? 1 : 0; XeFileInfo[] fi2 = new XeFileInfo[di2.Length + fi.Length + extra]; if(extra != 0) { fi2[0] = new XeFileInfo(di.Parent); fi2[0].Name = ".."; } int i = extra; for(int j = 0; j < di2.Length; ++j, ++i) { try { fi2[i] = new XeFileInfo(di2[j]); } catch { } } for(int j = 0; j < fi.Length; ++j, ++i) { try { fi2[i] = new XeFileInfo(fi[j]); } catch { } } return (from fival in fi2 where fival != null select fival).ToArray(); }
public static object GetIconForDirectory(XeFileInfo file) { foreach(FileTypeIconHandler handler in fileTypeIconHandlers) { return handler.FindIconDir(file.FullPath, Path.GetExtension(file.Name), null); } throw new PluginNotFoundException(); }