import scala.util.Random
object RandomFiles {
// Generate a random string of given length
def generateRandomString(length: Int): String = {
val charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
val sb = new StringBuilder(length)
for (_ <- 0 until length) {
sb.append(charset(Random.nextInt(charset.length)))
}
sb.toString()
}
// Generate a random date
def generateRandomDate(): String = {
val year = 2000 + Random.nextInt(21) // 2000–2020
val month = 1 + Random.nextInt(12) // 1–12
val day = 1 + Random.nextInt(28) // 1–28
f"$year%04d-$month%02d-$day%02d"
}
// Generate a random file size
def generateRandomFileSize(): Int = {
1 + Random.nextInt(100000) // 1–100000 bytes
}
def main(args: Array[String]): Unit = {
val extensions = List(".txt", ".jpg", ".png", ".cpp", ".pdf")
val numberOfFiles = 10
val fileLength = 9
for (_ <- 1 to numberOfFiles) {
val fileName = generateRandomString(fileLength)
val extension = extensions(Random.nextInt(extensions.length))
val date = generateRandomDate()
val fileSize = generateRandomFileSize()
println(s"$fileName$extension $date $fileSize bytes")
}
}
}
/*
run:
Os65lCLUN.cpp 2007-05-04 45761 bytes
xT882Lsut.pdf 2012-08-20 37279 bytes
b4cjeuFSl.txt 2011-11-04 12896 bytes
8EtyDwLUm.pdf 2007-11-10 90561 bytes
3rNXG4plf.cpp 2008-06-15 46248 bytes
eAIeoPjHT.jpg 2006-11-28 61313 bytes
Ievr1ysKE.pdf 2006-06-18 90182 bytes
j6R5vv22d.png 2012-11-26 71070 bytes
rcyIH3v3w.pdf 2006-09-27 62660 bytes
wqk94MTwc.png 2013-07-12 83833 bytes
*/