How to create a list of random file names, including extension, dates, and file size in VB.NET

1 Answer

0 votes
Imports System
Imports System.Collections.Generic

Module RandomFiles

    ' Function to generate a random string of given length
    Function GenerateRandomString(length As Integer, rng As Random) As String
        Const charset As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        Dim result As Char() = New Char(length - 1) {}

        For i As Integer = 0 To length - 1
            result(i) = charset(rng.Next(charset.Length))
        Next

        Return New String(result)
    End Function

    ' Function to generate a random date
    Function GenerateRandomDate(rng As Random) As String
        Dim year As Integer = rng.Next(2000, 2021)   ' Random year between 2000 and 2020
        Dim month As Integer = rng.Next(1, 13)       ' Random month between 1 and 12
        Dim day As Integer = rng.Next(1, 29)         ' Random day between 1 and 28

        Return String.Format("{0:0000}-{1:00}-{2:00}", year, month, day)
    End Function

    ' Function to generate a random file size
    Function GenerateRandomFileSize(rng As Random) As Integer
        Return rng.Next(1, 100001) ' Random file size between 1 and 100000 bytes
    End Function

    Sub Main()
        Dim rng As New Random()

        Dim extensions As New List(Of String) From {
            ".txt", ".jpg", ".png", ".cpp", ".pdf"
        }

        Dim numberOfFiles As Integer = 10
        Dim fileLength As Integer = 9

        For i As Integer = 1 To numberOfFiles
            Dim fileName As String = GenerateRandomString(fileLength, rng)
            Dim ext As String = extensions(rng.Next(extensions.Count))
            Dim dateStr As String = GenerateRandomDate(rng)
            Dim fileSize As Integer = GenerateRandomFileSize(rng)

            Console.WriteLine($"{fileName}{ext} {dateStr} {fileSize} bytes")
        Next
    End Sub

End Module



' run:
'
' JQJfuugwV.pdf 2011-08-07 64591 bytes
' ze3dGbKio.jpg 2012-07-04 82428 bytes
' IWoukV2AQ.jpg 2018-01-15 99133 bytes
' WCwKrxSoN.png 2008-03-23 38739 bytes
' AuRbAmX69.txt 2001-02-09 12012 bytes
' 7DlXFixp5.cpp 2014-10-08 83328 bytes
' UF03TNqOJ.jpg 2013-06-19 94306 bytes
' 1wNV7vSoY.jpg 2008-01-09 23922 bytes
' i7RXKjaUE.png 2016-10-07 14697 bytes
' ysZ6fkLpR.png 2004-08-14 5597 bytes
'


 



answered 20 hours ago by avibootz

Related questions

...