在vb.net中,如何根据逗号分隔的字符串从目录中获取文件?

时间:2014-04-25 06:21:41

标签: vb.net

我需要从文件夹中的文件创建array()。以下是我如何获取文件夹中所有文件的示例。

Dim filesList = New DirectoryInfo("MyPath").GetFiles("*", SearchOption.TopDirectoryOnly).Where(Function(f) Not f.Attributes.HasFlag(FileAttributes.Hidden)).[Select](Function(f) New AClassNameHere(f)).ToArray()

我想做同样的事情,但只获取以逗号分隔的字符串存在的文件。

Dim myFiles as String = "filename1.jpg,filename2.jpg,filename3.jpg"

您看到AClassNameHere是我需要将每个文件发送到的类,如果我知道如何发送有关每个文件的其他数据(如类型,大小等),那也很好。< / p>

谢天谢地!

2 个答案:

答案 0 :(得分:1)

您可以通过添加额外的.Where()过滤器

来缩小查询结果范围
Dim myFiles as String = "filename1.jpg,filename2.jpg,filename3.jpg"
Dim filesList = New DirectoryInfo("MyPath")
                .GetFiles("*", SearchOption.TopDirectoryOnly)
                .Where(Function(f) Not f.Attributes.HasFlag(FileAttributes.Hidden))
                .Where(Function(f) myFiles.Contains(f.Name))
                .[Select](Function(f) New AClassNameHere(f)).ToArray()

更好的选择是确保所有文件名都遵循模式。

New DirectoryInfo("MyPath").GetFiles("filename*.jpg", SearchOption.TopDirectoryOnly)

答案 1 :(得分:0)

使用此...

    Dim Files() As String
    Files= filesList.Split(",")

    For each File In Files
    Msgbox(File)
    Next