使用System.IO.directory.getfiles

时间:2013-03-15 13:20:57

标签: asp.net vb.net

我使用以下代码获取pdf的列表并将它们放在一个数组中,然后我使用autocomplete extender搜索它们。一切正常,但System.IO.directory.getfiles总是返回我不想要的文件的路径。

任何想法。

    Public Shared Function GetCompletionList(ByVal prefixText As String, ByVal count As Integer, ByVal contextKey As String) As String()
    'Create array of movies   
    Dim files() As String = System.IO.Directory.GetFiles("c:\pdfs")

    ' Return matching movies   
    Return (
         From m In files
         Where m.Contains(prefixText)
         Select m).Take(count).ToArray()
End Function

2 个答案:

答案 0 :(得分:2)

尝试使用此LINQ从已返回的完整文件名列表中删除路径

Dim files = Directory.GetFiles("c:\pdfs", "*.pdf").Select(Function(s) Path.GetFileName(s))

请注意,如果使用正确的重载,Directory.GetFiles只能检索PDF

答案 1 :(得分:0)

所以你想要文件名而不是完整路径?!使用Path class

Dim files() As String = System.IO.Directory.GetFiles("c:\pdfs")
Dim names = From path in files
            Let fileName = IO.Path.GetFileName(path)
            Where fileName.StartsWith(prefixText)
            Select fileName  Take count

请注意,我使用StartsWith代替Contains,因为变量名prefixText表明这更合适。