只获取FolderName到datatable中

时间:2013-01-11 20:46:52

标签: c# datatable

我正在尝试将subfoldername而不是FULLNAME添加到我的数据表中的serparate列中。请帮忙。

protected void Page_Load(object sender, EventArgs e) {
    DataTable ReportsDT = new DataTable("ReportsDT");
    ReportsDT.Columns.Add("Name");
    ReportsDT.Columns.Add("FolderName");
    DirectoryInfo DirInfo = new DirectoryInfo(Server.MapPath("Reports"));
    DataRow ReportDTRow = ReportsDT.NewRow();
        foreach (FileInfo fi in DirInfo.GetFiles("*.*", SearchOption.AllDirectories)) {
            ReportDTRow = ReportsDT.NewRow();
            ReportDTRow["Name"] = fi.Name;
            ReportDTRow["FolderName"] = fi.FullName;
            ReportsDT.Rows.Add(ReportDTRow);  
        }
}

3 个答案:

答案 0 :(得分:3)

您可以使用DirectoryInfo获取有关给定目录的信息。您在FileInfo下的fi.Directory实例中提供了副本:

foreach (FileInfo fi in DirInfo.GetFiles("*", SearchOption.AllDirectories)) {
    ReportDTRow = ReportsDT.NewRow();  
    ReportDTRow["Name"] = fi.Name;  
    ReportDTRow["FolderName"] = fi.Directory.Name;                   
    ReportsDT.Rows.Add(ReportDTRow);  
}

答案 1 :(得分:0)

请参阅以下示例代码:

string[] folders = fi.FullName.Split('\\');
string subFolderName = folders[folders.Length - 2];

答案 2 :(得分:0)

我相信你在寻找

ReportDTRow["FolderName"] = fi.Directory.Name;

你也可以在路径分隔符上拆分字符串并自己解析它,但上面应该很好地假设我理解你想要的东西。