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

来源:互联网 发布:ai软件怎么下载 编辑:程序博客网 时间:2024/04/29 21:13

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;
    }

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tanjiaping518/archive/2011/03/02/6218179.aspx

原创粉丝点击