1

ディレクトリのリストを配列に保存するにはどうすればよいですか?私はこの方法を試しましたが、これは機能しません。

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
4

1 に答える 1

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()拡張メソッドを使用して、リストを配列に変換できます。したがって、この場合、サブの最後で、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

しかし、このようにするのは裏側の苦痛だと思います...

于 2013-03-18T05:07:15.773 に答える