using System; using System.Collections.Generic; using System.Linq; using System.Web; using DbLib.db; using System.Data; using DbLib.Common; using FrameWork.Modal; using FrameWork; using System.IO; using Newtonsoft.Json; using System.Text.RegularExpressions; using System.Data.OracleClient; namespace website.handler { /// <summary> /// htbsicon 的摘要说明 /// </summary> public class htbsicon : IHttpHandler { public class File_info { public string name; public int type; public string path; } public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; StreamReader s = null; try { string port = System.Configuration.ConfigurationManager.AppSettings["port"].ToString();//获取端口 string UrlGetlist = "http://localhost:" + port + "/handler/DBhandler/OperationDBHandler.ashx?funcName=SEL"; //查询方法 string requst = Common.HttpPost(UrlGetlist, "&tablename=htbsmap&id=0"); //返回数据 WebCommon.OutPutString(requst); requst = ConvertJsonString(requst); return; } catch { } finally { if (s != null) { s.Close(); } } } private string ConvertJsonString(string str) { //格式化json字符串 JsonSerializer serializer = new JsonSerializer(); TextReader tr = new StringReader(str); JsonTextReader jtr = new JsonTextReader(tr); object obj = serializer.Deserialize(jtr); if (obj != null) { StringWriter textWriter = new StringWriter(); JsonTextWriter jsonWriter = new JsonTextWriter(textWriter) { Formatting = Formatting.Indented, Indentation = 4, IndentChar = ' ' }; serializer.Serialize(jsonWriter, obj); return textWriter.ToString(); } else { return str; } } public void Digui(string path, List<File_info> list) { string[] filelist = Directory.GetFiles(path); Regex reg = new Regex("_.*"); for (int n = 0; n < filelist.Length; n++) { File_info f = new File_info(); int index = filelist[n].LastIndexOf('\'); int index3 = filelist[n].LastIndexOf("_"); int index2 = filelist[n].IndexOf("\images"); if (index != -1) { f.name = System.IO.Path.GetFileNameWithoutExtension(filelist[n]); f.name = reg.Replace(f.name, ""); f.path = filelist[n].Substring(index2 + 1).Replace("\", "/"); list.Add(f); } } string[] dirlist = Directory.GetDirectories(path); for (int n = 0; n < dirlist.Length; n++) { DirectoryInfo d = new DirectoryInfo(dirlist[n]); File_info f = new File_info() { name = d.Name, type = 1 }; list.Add(f); Digui(dirlist[n], list); } } public bool IsReusable { get { return false; } } } }