1

我正在使用以下代码获取 pdf 列表并将它们放在一个数组中,然后我使用自动完成扩展器搜索它们。一切正常,但 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
4

2 回答 2

2

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

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

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

于 2013-03-15T13:24:50.107 回答
0

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

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表明这更合适。

于 2013-03-15T13:25:21.420 回答