我使用以下代码获取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
答案 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
表明这更合适。