在vb.net中,如何在查询中使用带有特定文件名的目录信息
假设我有一个用逗号分隔的文件列表在vb.net中,如何在查询中使用带有特定文件名的目录信息,vb.net,Vb.net,假设我有一个用逗号分隔的文件列表 Dim listOfFiles As String() = filesPosted.Split(",") 我使用DirectoryInfo获取文件列表并将其发送到另一个数组 Dim files = New DirectoryInfo(StorageRoot) _ .GetFiles("*", SearchOption.TopDirectoryOnly) _ .Whe
Dim listOfFiles As String() = filesPosted.Split(",")
我使用DirectoryInfo获取文件列表并将其发送到另一个数组
Dim files = New DirectoryInfo(StorageRoot) _
.GetFiles("*", SearchOption.TopDirectoryOnly) _
.Where(Function(f) Not f.Attributes.HasFlag(FileAttributes.Hidden)) _
.Where(Function(f) filesPosted.Contains(f.Name)) _
.[Select](Function(f) New FilesStatus(f)).ToArray()
我面临的问题是,我需要我的条件更加严格。我会解释:
如果我的listOfFiles包含(abc.txt,xyz.txt),并且正在搜索的目录中有一个aabc.txt文件名,它将返回abc.txt和aabc.txt。我知道这是因为条款的这一部分:
.Where(Function(f) filesPosted.Contains(f.Name))
由于contains属性正在查找另一个文件。。。但我不想要它。我希望文件完全基于字符串()匹配
有没有更好的方法可以在不循环浏览每个文件的情况下执行此操作?一种更严格的方法使其成为“包含”的严格条件
谢谢你的帮助 试试看:
Dim listOfFiles As String() = filesPosted.Split(",").Select(function(f) f.ToLower())
' then
Dim files = New DirectoryInfo(StorageRoot) _
.GetFiles("*", SearchOption.TopDirectoryOnly) _
.Where(Function(f) Not f.Attributes.HasFlag(FileAttributes.Hidden)) _
.Where(Function(f) listOfFiles.Any(function(l) l = f.Name.ToLower())) _
.[Select](Function(f) New FilesStatus(f)).ToArray()
抱歉,可怜的C#到VB.Net的转换