简单的文件操作方法和xml操作方法
显示xml数据
1 /// <summary> 2 /// 文件列表 3 /// </summary> 4 /// <param name="FileName">文件名</param> 5 /// <param name="FileType">文件类型</param> 6 /// <param name="FileSize">文件大小</param> 7 /// <param name="UpLoadTime">上传时间</param> 8 /// <param name="DownCount">下载次数</param> 9 /// <param name="context"></param> 10 /// <returns>返回结果</returns> 11 private bool FileList(string FileName, string FileType, string FileSize, string UpLoadTime, int DownCount,string Path,string NPath, HttpContext context) 12 { 13 bool addXmlDate = false; //返回是不是要添加数据 14 15 XmlDocument xmlDoc = new XmlDocument(); 16 17 xmlDoc.Load(context.Server.MapPath("http://www.cnblogs.com/source/list.xml")); //把XML文件装载进来 18 19 //定义根节点Files 20 XmlNode root = xmlDoc.SelectSingleNode("Files"); 21 22 XmlNodeList xnl = root.ChildNodes; 23 24 //节点File 25 XmlElement xel = xmlDoc.CreateElement("File"); 26 27 if (xnl.Count > 0) 28 { 29 xel.SetAttribute("id", (xnl.Count).ToString()); 30 } 31 else 32 { 33 xel.SetAttribute("id", (0).ToString()); 34 } 35 36 XmlElement username = xmlDoc.CreateElement("FileName"); 37 38 username.InnerText = FileName; 39 40 xel.AppendChild(username); 41 42 //文件类型 43 XmlElement xesubTitle = xmlDoc.CreateElement("FileType"); 44 45 xesubTitle.InnerText = FileType; 46 47 xel.AppendChild(xesubTitle); 48 49 //文件大小 50 51 XmlElement xesubAuthor = xmlDoc.CreateElement("FileSize"); 52 53 xesubAuthor.InnerText = FileSize; 54 55 xel.AppendChild(xesubAuthor); 56 57 //上传时间 58 XmlElement xesubPrice = xmlDoc.CreateElement("UpLoadTime"); 59 60 xesubPrice.InnerText = UpLoadTime; 61 62 xel.AppendChild(xesubPrice); 63 64 //下载次数 65 XmlElement cs = xmlDoc.CreateElement("DownCount"); 66 67 cs.InnerText = DownCount.ToString(); 68 69 xel.AppendChild(cs); 70 71 //存放根路径 72 XmlElement p = xmlDoc.CreateElement("Path"); 73 74 p.InnerText = Path; 75 76 xel.AppendChild(p); 77 78 //存放相对路径 79 XmlElement n = xmlDoc.CreateElement("NPath"); 80 81 n.InnerText = NPath; 82 83 xel.AppendChild(n); 84 85 //添加到 Files的root里去 86 87 root.AppendChild(xel); 88 89 xmlDoc.Save(context.Server.MapPath("http://www.cnblogs.com/source/list.xml")); //保存添加的数据 90 91 addXmlDate = true; 92 93 return addXmlDate; 94 95 }
上传文件
1 /// <summary> 2 /// 文件上传方法 3 /// </summary> 4 /// <param name="filepath">文件原始路径</param> 5 /// <param name="savepath">文件保存路径</param> 6 /// <param name="upload">是否上传</param> 7 /// <param name="context">http请求实例</param> 8 /// <returns>返回上传结果</returns> 9 public bool UpLoad(string savepath,bool upload,HttpContext context,HttpPostedFile post) 10 { 11 //string pa=Path.GetExtension(post.FileName); 12 //FileInfo FIleIn = new FileInfo(context.Server.MapPath(pa)); 13 string name = Path.GetFileName(post.FileName); 14 string path = null; 15 //string[] array = name.Split('.'); 16 17 //判断保存目录是否存在,若不存在则创建该目录 18 if (!System.IO.Directory.Exists(savepath)) 19 { 20 System.IO.Directory.CreateDirectory(context.Server.MapPath(ConfigHelper.SitePath +savepath)); 21 } 22 //FIleIn = new FileInfo(context.Server.MapPath(FIleIn.DirectoryName)); //文件信息 23 24 if (string.IsNullOrEmpty(savepath)) 25 { 26 path = ConfigHelper.SitePath + "AuthPage/source/upload/"; 27 savepath = context.Server.MapPath(path); 28 } 29 else 30 { 31 path = ConfigHelper.SitePath + savepath + "/"; 32 savepath = context.Server.MapPath(path); 33 } 34 //string filename = filepath.FileName; 35 36 37 //if (FIleIn.Exists) 38 //{ 39 //获取文件大小 40 string size = ConvertUnit(post.ContentLength); 41 42 //获取文件类型 43 string type = Path.GetExtension(name); 44 string typestr = type.Substring(1); 45 46 47 if (!System.IO.File.Exists(savepath + name)) 48 { 49 post.SaveAs(savepath + name); 50 FileList(name, typestr, size, DateTime.Now.ToString(), 0, savepath+name,path + name, context); 51 context.Response.Write("0"); 52 } 53 else 54 { 55 post.SaveAs(savepath + name); 56 context.Response.Write("1"); 57 } 58 59 return true; 60 }
删除xml数据
1 /// <summary> 2 /// 删除xml数据 3 /// </summary> 4 /// <param name="delstr">参数id</param> 5 /// <param name="filepath1">文件路径</param> 6 /// <param name="context">实例</param> 7 /// <returns>返回结果</returns> 8 public bool DelXML( HttpContext context, HttpPostedFile post) 9 { 10 string str = context.Request.Params["id"]; 11 XmlDocument xmlDoc = new XmlDocument(); 12 xmlDoc.Load(context.Server.MapPath("http://www.cnblogs.com/source/list.xml")); 13 XmlNode root = xmlDoc.SelectSingleNode("Files"); 14 XmlNodeList xnl = root.ChildNodes; 15 for (int i = 0; i < xnl.Count; i++) 16 { 17 XmlElement xe = (XmlElement)xnl.Item(i); 18 //XmlNode xn = (XmlNode)xnl.Item(i); 19 if (xe.GetAttribute("id") == str) 20 { 21 22 DelFile(xe.ChildNodes[5].InnerText, true, context); 23 root.RemoveChild(xe); 24 25 } 26 } 27 28 29 30 xmlDoc.Save(context.Server.MapPath("http://www.cnblogs.com/source/list.xml")); 31 HttpResponse Respone = context.Response; 32 Respone.Redirect("http://www.cnblogs.com/source/list.aspx"); 33 return true; 34 }
统计下载次数
1 文件删除 2 1 /// <summary> 3 2 /// 删除文件方法 4 3 /// </summary> 5 4 /// <param name="filepath"></param> 6 5 /// <param name="del"></param> 7 6 /// <param name="context"></param> 8 7 /// <param name="post"></param> 9 8 /// <returns></returns> 10 9 public bool DelFile(string delpath, bool del, HttpContext context) 11 10 { 12 11 13 12 if (!System.IO.File.Exists(delpath)) 14 13 { 15 14 context.Response.Write("0"); 16 15 } 17 16 else 18 17 { 19 18 System.IO.File.Delete(delpath); 20 19 context.Response.Write("1"); 21 20 } 22 21 return true; 23 22 } 24 23 25 24 26 25 27 26 /// <summary> 28 27 /// 下载次数 29 28 /// </summary> 30 29 /// <param name="context">实例化对象</param> 31 30 /// <param name="post">实例化对象</param> 32 31 /// <returns>返回修改结果</returns> 33 32 public bool Update(HttpContext context, HttpPostedFile post) 34 33 { 35 34 //string d = context.Request.Params["p"]; 36 35 string str = context.Request.Params["id"]; 37 36 XmlDocument xmlDoc = new XmlDocument(); 38 37 xmlDoc.Load(context.Server.MapPath("http://www.cnblogs.com/source/list.xml")); 39 38 XmlNode root = xmlDoc.SelectSingleNode("Files"); 40 39 XmlNodeList xnl = root.ChildNodes; 41 40 for (int i = 0; i < xnl.Count; i++) 42 41 { 43 42 XmlElement xe = (XmlElement)xnl.Item(i); 44 43 //XmlNode xn = (XmlNode)xnl.Item(i); 45 44 if (xe.GetAttribute("id") == str) 46 45 { 47 46 int down = int.Parse(xe.ChildNodes[4].InnerText); 48 47 down = down + 1; 49 48 } 50 49 } 51 50 52 51 xmlDoc.Save(context.Server.MapPath("http://www.cnblogs.com/source/list.xml")); 53 52 return true; 54 53 }
单位转换
1 View Code 2 1 /// <summary> 3 2 /// 单位转换 4 3 /// </summary> 5 4 /// <param name="size">byte</param> 6 5 /// <returns></returns> 7 6 public static string ConvertUnit(long size) 8 7 { 9 8 string FileSize = string.Empty; 10 9 if (size > (1024 * 1024 * 1024)) 11 10 FileSize = ((double)size / (1024 * 1024 * 1024)).ToString(".##") + " GB"; 12 11 else if (size > (1024 * 1024)) 13 12 FileSize = ((double)size / (1024 * 1024)).ToString(".##") + " MB"; 14 13 else if (size > 1024) 15 14 FileSize = ((double)size / 1024).ToString(".##") + " KB"; 16 15 else if (size == 0) 17 16 FileSize = "0 Byte"; 18 17 else 19 18 FileSize = ((double)size / 1).ToString(".##") + " Byte"; 20 19 21 20 return FileSize; 22 21 }