您的位置:首页 > 编程语言 > ASP

ASP.NET遍历文件夹及子文件夹下所有图片信息,生成图片URL并放到HTML文件中

2011-03-02 14:57 417 查看
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Lifetime;
using System.IO;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
StringBuilder sbString = new StringBuilder();//用来存储拼接的图片路径
protected void Page_Load(object sender, EventArgs e)
{
string path = "C://Documents and Settings//Administrator//桌面//abc//PicForEachX//PictureEach//Upload";
DirectoryInfo dir = new DirectoryInfo(path);
sbString.Append("<!DOCTYPE html PUBLIC /"-//W3C//DTD XHTML 1.0 Transitional//EN/" /"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd/"><html xmlns=/"http://www.w3.org/1999/xhtml/"><head><title></title></head><body><div>");
forFileLength(dir);
sbString.Append("</div></body></html>");
CreateHtmlFile(Server.MapPath("images"), sbString.ToString(), "imgs.html");
Response.Write(sbString.ToString());
}
private void forFileLength(DirectoryInfo directory)
{
DirectoryInfo[] directorys = directory.GetDirectories();
DateTime todayTime = System.DateTime.Today;
DateTime yesterdayTime = todayTime.AddDays(-1);
FileInfo[] files = directory.GetFiles("*.jpg");
foreach (FileInfo file in files)
{
if (file.CreationTime >= yesterdayTime && file.CreationTime < todayTime)
{
sbString.Append("<div>");
sbString.Append(GetRootURI());//添加域名
sbString.Append("/");
int begin = directory.FullName.IndexOf("Upload");
sbString.Append(directory.FullName.Substring(begin).Replace('//', '/'));
sbString.Append("/");
sbString.Append(file.Name);
sbString.Append("</div>");
}
}
foreach (DirectoryInfo dir in directorys)
{
forFileLength(dir);
}
}

/// <summary>
/// 生成HTML文件
/// </summary>
/// <param name="FilePath">保存文件路径</param>
/// <param name="Content">文件流内容</param>
/// <param name="FileName">文件名</param>
public static void CreateHtmlFile(string FilePath, string Content, string FileName)
{
if (Directory.Exists(FilePath) == false)
{
Directory.CreateDirectory(FilePath);
}
using (StreamWriter m_streamWriter = new StreamWriter(FilePath + "//" + FileName, false, System.Text.UnicodeEncoding.GetEncoding("UTF-8")))
{
m_streamWriter.WriteLine(Content);
m_streamWriter.Flush();
m_streamWriter.Close();
}
}
/// <summary>
/// 取得网站的根目录的URL,包括虚拟目录
/// </summary>
/// <returns>如:https://www.do.com/apppath </returns>
public static string GetRootURI()
{
string AppPath = "";
HttpContext HttpCurrent = HttpContext.Current;
HttpRequest Req;
if (HttpCurrent != null)
{
Req = HttpCurrent.Request;

string UrlAuthority = Req.Url.GetLeftPart(UriPartial.Authority);
if (Req.ApplicationPath == null || Req.ApplicationPath == "/")
//直接安装在 Web 站点
AppPath = UrlAuthority;
else
//安装在虚拟子目录下
AppPath = UrlAuthority + Req.ApplicationPath;
}
return AppPath;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: