如何将目录列表存储到数组中?我尝试过这种方法,但这不起作用。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim parentinfo As New DirectoryInfo("C:\myfiles")
counter1 = My.Computer.FileSystem.GetFiles("C:\myfiles")
dirsize = counter1.Count
ReDim directory(dirsize)
For Each dir As FileSystemInfo In parentinfo.GetFileSystemInfos()
Dim i As Integer = 0
directory(i) = dir.Name
ComboBox1.Items.Add(directory(i))
i += 1
Next dir
End Sub
答案 0 :(得分:0)
尝试做这样的事情:
Public Sub New()
Dim directories As New List(Of DirectoryInfo)
Call Me.InitializeComponent()
Call Me.ComboBox1.Items.Clear()
For Each directory As DirectoryInfo In (New DirectoryInfo("C:\")).GetDirectories()
Call directories.Add(directory)
Me.ComboBox1.Items.Add(directory.Name)
Next
End Sub
这将为指定路径中找到的所有目录生成directories
个DirectoryInfo
个对象列表。它还会将所有目录名称添加到组合框中(在本例中为Combobox1
。
更新
刚才意识到你专门要求一个阵列。您可以使用ToArray()
扩展方法将列表转换为数组。所以在这种情况下,在sub的末尾你可以调用directories.ToArray()
来获取你的数组。或者你可以使用我用数组编写的代码,但坦率地说,如果你可以使用列表,为什么要使用数组呢?
如果你想用数组做这里是代码:
Public Sub New()
Dim i as integer
Call Me.InitializeComponent()
ReDim directory(i)
For Each dir As DirectoryInfo In (New DirectoryInfo("C:\")).GetDirectories()
directory(i) = dir
Me.ComboBox1.Items.Add(directory.Name)
i += 1
ReDim Preserve directory(i)
Next
End Sub
但我觉得以这种方式做这件事背后是痛苦的......