我有一个 WPF 程序,它可以抓取某个网络目录中的所有目录并将它们列在列表视图中。
问题是目录太多,加载列表最多可能需要 5 秒。
我想知道是否有一种方法可以使用更高效的代码来加快速度。或者甚至可能是一种将列表存储在数组中并在第一次之后每次都查找更改的方法?
For Each i As String In Directory.GetDirectories(dir)
If File.Exists(Path.GetFullPath(i) & "\cover.jpg") Then
If (File.GetAttributes(Path.GetFullPath(i)) And FileAttributes.Hidden) <> FileAttributes.Hidden Then
Dim foldername As String = Path.GetFileName(i)
Dim moviename As String = foldername
If moviename.Length > 4 Then
If moviename.Substring(0, 4) = "The " Then
moviename = moviename.Remove(0, 4)
End If
End If
Dim display As Boolean = True
If IO.Directory.GetDirectories(Path.GetFullPath(i)).Length < 1 Then
If IO.Directory.GetFiles(Path.GetFullPath(i), "*.avi").Length < 1 Then
If IO.Directory.GetFiles(Path.GetFullPath(i), "*.mp4").Length < 1 Then
If IO.Directory.GetFiles(Path.GetFullPath(i), "*.mkv").Length < 1 Then
display = False
End If
End If
End If
End If
If display = True Then
Showslist.Items.Add(New With {Key .img = Path.GetFullPath(i) & "\cover.jpg", .name = foldername, .path = Path.GetFullPath(i), .created = Directory.GetCreationTime(Path.GetFullPath(i)), .moviename = moviename})
End If
End If
End If
Next