C#:使用选择方法筛选数据表的数据
我有一个数据表,其中包含一列作为文件路径。C#:使用选择方法筛选数据表的数据,c#,select,datatable,row,C#,Select,Datatable,Row,我有一个数据表,其中包含一列作为文件路径。 文件路径D:\New folder\link.txtD:\New 文件夹\SharepointMigration(工作 计划).xlsD:\New 文件夹\my2\link.txtD:\New 文件夹\my2\SharepointMigration(工作 计划).xlsD:\New 文件夹\my2\my3\New Text Document.txt D:\New folder\Try.txt 我正在按筛选我的数据表 DataRow[] dtRow =
文件路径
D:\New folder\link.txt
D:\New 文件夹\SharepointMigration(工作 计划).xls
D:\New 文件夹\my2\link.txt
D:\New 文件夹\my2\SharepointMigration(工作 计划).xls
D:\New 文件夹\my2\my3\New Text Document.txt
D:\New folder\Try.txt 我正在按筛选我的数据表
DataRow[] dtRow = dataTable_FilesWithMetaData.Select("FilePath Like '" + sourcePath + "%'");
但它会给我所有的文件和子文件夹文件。但我只想要文件,不想要子文件夹。如何编写这种类型的筛选器表达式
编辑:我使用的是VS-20082.0框架。
文件以xml格式来自某个服务器,然后我将填充我的gridview。如果文件位于运行应用程序的计算机上,为什么不执行
Directory.GetFiles(sourcePath)
对于所需路径?如果LINQ可用:
DataTable dt = new DataTable();
dt.Columns.Add("FilePath", typeof(string));
dt.Rows.Add(@"D:\New folder\link.txt");
dt.Rows.Add(@"D:\New folder\my2\link.txt");
string target = Path.GetDirectoryName(@"D:\New folder\");
DataRow[] rows = dt.Rows.Cast<DataRow>().Where(dr =>
Path.GetDirectoryName(((string)dr["FilePath"])).Equals(target))
.ToArray();
这些文件以xml格式来自某个服务器,然后我正在填充gridview。感谢João Angelo,你的助手方法很有效。这是一个很好的方法。。再次感谢1s;)
public static DataRow[] GetRowsForDir(DataTable table, string targetDir)
{
var result = new List<DataRow>();
foreach (DataRow row in table.Rows)
{
if (Path.GetDirectoryName(((string)row["FilePath"])).Equals(targetDir))
{
result.Add(row);
}
}
return result.ToArray();
}