private DataTable datatable;
private DataTable CreateDataSource()
??{
???DataTable dt = new DataTable();
???DataColumn col;
???col=new DataColumn();
???col.DataType=System.Type.GetType("System.Int32");
???col.ColumnName="ID";
???col.ReadOnly=true;
???col.AutoIncrement=true;
???col.AutoIncrementSeed=1;
???col.AutoIncrementStep=1;
???dt.Columns.Add(col);
???col=new DataColumn();
???col.DataType=System.Type.GetType("System.Int32");
???col.ColumnName="ParentID";
???col.ReadOnly=false;
???col.Unique=false;
???col.DefaultValue=int.Parse("0");
???dt.Columns.Add(col);
???dt.Columns.Add("filetype", typeof(int));
???dt.Columns.Add("filename", typeof(string));
???dt.Columns.Add("filesize",typeof(int));
???dt.Columns.Add("LastWriteTime", typeof(DateTime));
???return dt;
??}
public DataTable GetFolder()
??{
???CheckFolder();
???//DataTable dt = CreateDataSource();
???datatable=CreateDataSource();
???DirectoryInfo di=new DirectoryInfo(GetCurDir());
???GetFolder(0,di);
???datatable.AcceptChanges();
???return datatable;
??}
??private void GetFolder(int ParentID,DirectoryInfo dirinfo)
??{
???foreach(DirectoryInfo di in dirinfo.GetDirectories())
???{
????DataRow row;
????row=datatable.NewRow();
????row["ParentID"] = ParentID;
????row["filetype"] = 0; //dir
????row["filename"] = di.Name;
????row["filesize"] = 0;
????row["LastWriteTime"] = di.LastWriteTime;
????datatable.Rows.Add(row);
????int lpid=(int)datatable.Rows[datatable.Rows.Count-1]["ID"]; //获得最后一条记录得ID
????GetFolder(lpid,di);
???}
??}