-2

vb.net を使用して既存のランダムなディレクトリ名 (C:\ ドライブ) を選択し、その場所を変数に格納する方法を知っている人を教えてください。

私はこれをググる必要がありましたが、フォルダーではなくファイルに関連する例しか見つけることができないようです

4

2 に答える 2

1

これを試してみてください。これがあなたの要件に合っていることを願っています。

'----------------- Global Variables
Dim xCnter = 0
Dim xRndNo = 0
Dim xSubdirectory As String

Private Sub Basement()
     Dim xGenerator As System.Random = New System.Random()
     xRndNo = xGenerator.Next(1, 100)
     AssignRndDirectory("C:\")
     msgbox(subdirectory)
End Sub

Private Sub AssignRndDirectory(xPath as string)
     For Each subdirectory In Directory.GetDirectories(xPath)
        if xCnter = xRndNo then Exit sub
        xCnter += 1
        call AssignRndDirectory(subdirectory)
     Next 
End Sub

[注: このコードは IDE でテストされていません。何かエラーが発生した場合は教えてください。]


編集: TESTED WITH IDE

 Dim xCnter = 0
   Dim xRndNo = 0
   Dim xSubdirectory As String

   Private Sub Basement()

        Dim xGenerator As System.Random = New System.Random()
        xRndNo = xGenerator.Next(1, 100)
        AssignRndDirectory("C:\")
        MsgBox(xSubdirectory)

        xCnter = 0

    End Sub

    Private Sub AssignRndDirectory(ByVal xPath As String)

        Try

            For Each Subdirectory In Directory.GetDirectories(xPath)

                If xCnter = xRndNo Then Exit Sub
                xSubdirectory = Subdirectory
                xCnter += 1
                Call AssignRndDirectory(Subdirectory)

            Next

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub
于 2013-03-06T17:01:29.543 に答える
-2

ディレクトリのリストを作成し、そこからランダムに項目を選択するだけです。

Dim rnd As New Random()
Dim path As String = "C:\"
Dim dir = New DirectoryInfo(path)
Dim subDirs = dir.GetDirectories()
Dim randomDir = subdirs(rnd.[Next](subDirs.Length))

または、Linq を好む場合は、最後の行を次のようにすることができます。

Dim randomDirectory = subdirs.Skip(rnd.[Next](subdirs.Length)).First()
于 2013-03-06T14:52:28.053 に答える