四.查看文件属性 ViewDisk.aspx

函数BindFileData(int nDirID)根据参数nDirID从数据库获取文件的属性,由于文件所在目录没有在数据库中直接保存,因此需要动态创建。该功能由函数CreateDir(int

nDirID)和函数InsertParentDir(DataTable dataTable,int nParentID,StringBuilder sDir)实现。创建文件所在目录的具体步骤如下:
(1)定义保存目录的字符串dirSB
(2)从数据库中获取所有目录,并使用DataTable对象dataTable保存获取的结果;
(3)获取当前文件的父目录的DirID,并根据此DirID值获取它的名称,并把该名称添加到字符串dirSB中;
(4)获取步骤(3)文件的父目录,并重复步骤(3),直到ParentID的值为-1.
其中,步骤(1)和步骤(2)由函数CreateDir(int nDirID)实现,步骤(3)和步骤(4)由函数InsertParentDir(DataTable dataTable,int nParentID,StringBuilder sDir)实现。

public string CreateDir(int nDirID)
{//创建字符串dirSB
 StringBuilder dirSB=new StringBuilder();
 //从数据库获取目录
 IDisk disk=new Disk();
 DataTable dataTable=SystemTools.ConvertDataReaderToDataTable(disk.GetAllDirectoryFile());
 DataRow[] rowList=dataTable.Select("DirID='"+nDirID.ToString()+"'");
 if(rowList.Lenth!=1) return("");
 //创建其他目录
 InsertParentDir(dataTable,Int32.Parse(rowList[0]["ParentID"].ToSring()),dirSB);
 return (dirSB.ToString());
}

private void InsertParentDir(DataTable dataTable,int nParentID,StringBuilder sDir)
{
 if(nParentID<=-1){return;}
 DataRow[] rowList=dataTable.Select("DirID='"+nParentID.ToString()+"'");
 if(rowList.Lenth!=1) return;
 //插入目录信息
 sDir.Insert(0,rowList[0]["Name"].ToString()+"/");
 //递归调用,插入目录信息
 InsertParentDir(dataTable,Int32.Parse(rowList[0]["ParentID"].ToSring()),sDir);
}


int nFileID=-1;
private int nParentID=-1;
protected void Page_Load(object sender,EventArgs e)
{
  if(Request.Params["DirID"]!=null)
   {
     if(Int32.TryParse(Request.Params["DirID"].ToString(),out nDirID)==false){return;}
   }
  if(Request.Params["ParentID"]!=null)
   {
     if(Int32.TryParse(Request.Params["ParentID"].ToString(),out nParentID)==false){return;}
   }
   if(!Page.IsPostBack)
   {//显示目录的名称
     if(nFileID>-1){BindFileData(nFileID);}
   }
}
private void BindFileData(int nDirID)
{
  IDisk disk=new Disk();
  SqlDataReader dr=disk.GetSingleFile(nFileID);
  if(dr.Read())
  {//获取文件的名称(包含后缀)
   Name.Text=dr["Name"].ToString();
   Type.Text=dr["Type"].ToString();
   Contain.Text=dr["Contain"].ToString()+"B";
   CreateDate.Text=dr["CreateDate"].ToString();
   Dir.Text=CreateDir(Int32.Parse(dr["DirID"].ToString()));
  }
  dr.Close();
}

//返回

protected void ReturnBtn_Click(object sender,EventArgs e)
{Response.Redirect("~/ShowDisk.aspx?ParentID="+nParentID.ToString());}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值