using System;
using System.Data;
using System.Configuration;
using System.Collections;
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 UUN;
using System.IO;

public partial class Admin_ZiYuanGuanLiQi : System.Web.UI.Page
{
    private 访问 访问;
    protected void Page_Load(object sender, EventArgs e)
    {
        访问 = new 访问(this.Context);
        访问.开始处理("选择资源", "网站后台", "选择资源", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }
    public String 文件夹位置;
    public String 标识;
    private void 创建文件夹()
    {
        String MingChen = Request.Form["MingChen"];

        if (MingChen != null)
        {
            String _文件夹位置 = 程序.安装位置 + "Data/System/" + (文件夹位置 == null || 文件夹位置 == "" ? "" : 文件夹位置 + "/") + MingChen;
            if (!Directory.Exists(Server.MapPath(_文件夹位置)))
                Directory.CreateDirectory(Server.MapPath(_文件夹位置));
        }
    }
    private void 上传文件()
    {
        if (Request.Files.Count == 1)
        {
            资源管理器 资源管理 = new 资源管理器(this.Context);
            资源管理.上传文件("Data/System/" + 文件夹位置, Request.Files[0]);
        }
    }
    private void 删除文件夹()
    {
        String 删除文件夹位置 = Request.QueryString["deld"];

        资源管理器 资源管理=new 资源管理器(this.Context);
        if (删除文件夹位置 != null)
            资源管理.删除文件夹("Data/System/" + (文件夹位置 == null || 文件夹位置 == "" ? "" : 文件夹位置 + "/") + 删除文件夹位置);
    }
    private void 删除文件()
    {
        String 删除文件位置 = Request.QueryString["delf"];

        资源管理器 资源管理 = new 资源管理器(this.Context);
        if (删除文件位置 != null)
            资源管理.删除文件("Data/System/" + (文件夹位置 == null || 文件夹位置 == "" ? "" : 文件夹位置 + "/") + 删除文件位置);
    }
    private void ZhiXing()
    {
        访问.验证管理员();
        文件夹位置 = Request.QueryString["d"];
        String 标识 = Request.QueryString["b"];

        创建文件夹();
        上传文件();
        删除文件夹();
        删除文件();

        WeiZhi.Text = "<a href=\"ZiYuanGuanLiQi.aspx?b="+标识+"\">资源</a>";

        if (文件夹位置 != null && 文件夹位置 != "")
        {
            String[] 文件夹数组_ = 文件夹位置.Split('/');
            String 文件夹 = "";
            for (int i = 0; i < 文件夹数组_.Length; i++)
            {
                文件夹 += (i == 0 ? "" : "/") + 文件夹数组_[i];
                WeiZhi.Text += " &gt; <a href=\"ZiYuanGuanLiQi.aspx?b="+标识+"&d=" + Server.UrlEncode(文件夹) + "\">" + Server.HtmlEncode(文件夹数组_[i]) + "</a>";
            }
        }

        //表数据结构
        DataTable 表格 = new DataTable("资源");
        表格.Columns.Add("序号", typeof(Int32));
        表格.Columns.Add("图标", typeof(String));
        表格.Columns.Add("文件名", typeof(String));
        表格.Columns.Add("类型", typeof(String));
        表格.Columns.Add("文件大小", typeof(String));
        表格.Columns.Add("创建时间", typeof(DateTime));
        表格.Columns.Add("文件地址", typeof(String));
        表格.Columns.Add("下载地址", typeof(String));
        表格.Columns.Add("删除地址", typeof(String));

        //表数据
        资源管理器 资源管理 = new 资源管理器(this.Context);

        DirectoryInfo[] 文件夹数组 = 资源管理.获取文件夹列表("Data/System/" + 文件夹位置);
        int 序号=1;
        for (int i = 0; i < 文件夹数组.Length; i++)
        {
            DirectoryInfo 文件夹 = 文件夹数组[i];
            DataRow 行 = 表格.NewRow();
            行["序号"] = 序号;
            行["图标"] = 程序.安装位置 + "Admin/Images/folder.png";
            行["文件名"] = 文件夹.Name;
            行["类型"] = "..";
            行["文件大小"] = 常用.计算文件大小(常用.计算文件夹大小(文件夹));
            行["创建时间"] = 文件夹.CreationTime;
            行["文件地址"] = "ZiYuanGuanLiQi.aspx?b="+标识+"&d=" + Server.UrlEncode((文件夹位置 == null || 文件夹位置 == "" ? "" : 文件夹位置 + "/") + 文件夹.Name);
            行["下载地址"] = "";
            行["删除地址"] = "ZiYuanGuanLiQi.aspx?b=" + 标识 + "&deld=" + Server.UrlEncode((文件夹位置 == null || 文件夹位置 == "" ? "" : 文件夹位置 + "/") + 文件夹.Name) + "&d=" + 文件夹位置;
            表格.Rows.Add(行);
            序号++;
        }

        Hashtable 文件数组 = 资源管理.获取文件列表("Data/System/" + 文件夹位置, Convert.ToString(程序.设置["资源文件_允许上传的文件类型"]));


        foreach (object 键 in 文件数组.Keys)
        {
            FileInfo 文件 = (FileInfo)文件数组[键];
            DataRow 行 = 表格.NewRow();
            行["序号"] = 序号;
            String 图标位置 = 程序.安装位置 + "Admin/Images/filetype/" + 文件.Extension.Substring(1) + ".gif";
            行["图标"] = File.Exists(Server.MapPath(图标位置)) ? 图标位置 : 程序.安装位置 + "Admin/Images/filetype/unknown.gif";
            行["文件名"] = 文件.Name;
            行["类型"] = 文件.Extension.Substring(1);
            行["文件大小"] = 常用.计算文件大小(文件.Length);
            行["创建时间"] = 文件.CreationTime;
            行["文件地址"] = "javascript:window.close();opener.SheZhiWenJian('"+标识+"','" + 程序.安装位置 + "UpFile/System/" + (文件夹位置 == null || 文件夹位置 == "" ? "" : 文件夹位置 + "/") + 文件.Name + "');";
            行["下载地址"] = 程序.安装位置 + "Data/System/" + (文件夹位置 == null || 文件夹位置 == "" ? "" : 文件夹位置 + "/") + 文件.Name;
            行["删除地址"] = "ZiYuanGuanLiQi.aspx?b="+标识+"&delf=" + Server.UrlEncode(文件.Name) + "&d=" + 文件夹位置;

            表格.Rows.Add(行);

            序号++;
        }

        GridView1.DataSource = 表格;
        GridView1.DataBind();
    }
}