How to create a list of random file names, including extension, dates, and file size in C#

1 Answer

0 votes
using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;

class RandomFiles
{
    // Function to generate a random string of given length
    static string GenerateRandomString(int length) {
        const string charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        var bytes = new byte[length];
        RandomNumberGenerator.Fill(bytes);

        var sb = new StringBuilder(length);
        foreach (byte b in bytes)
            sb.Append(charset[b % charset.Length]);

        return sb.ToString();
    }

    // Function to generate a random date
    static string GenerateRandomDate() {
        int year  = RandomNumberGenerator.GetInt32(2000, 2021); // 2000–2020
        int month = RandomNumberGenerator.GetInt32(1, 13);      // 1–12
        int day   = RandomNumberGenerator.GetInt32(1, 29);      // 1–28

        return $"{year:0000}-{month:00}-{day:00}";
    }

    // Function to generate a random file size
    static int GenerateRandomFileSize() {
        return RandomNumberGenerator.GetInt32(1, 100001); // 1–100000 bytes
    }

    static void Main()
    {
        var extensions = new List<string> { ".txt", ".jpg", ".png", ".cpp", ".pdf" };

        int numberOfFiles = 10;
        int fileLength = 9;

        for (int i = 0; i < numberOfFiles; i++)
        {
            string fileName = GenerateRandomString(fileLength);
            string extension = extensions[RandomNumberGenerator.GetInt32(extensions.Count)];
            string date = GenerateRandomDate();
            int fileSize = GenerateRandomFileSize();

            Console.WriteLine($"{fileName}{extension} {date} {fileSize} bytes");
        }
    }
}


/*
run:

oz8tMiA8m.cpp 2011-11-28 42022 bytes
hYDtnqmqd.txt 2013-02-07 17553 bytes
deUsovuqT.cpp 2012-05-06 33347 bytes
EPrF7lY10.cpp 2009-10-22 57643 bytes
bBQklRNgx.jpg 2008-08-27 60546 bytes
jfaDtpCu6.jpg 2004-09-07 16648 bytes
C06fKesUT.jpg 2020-04-08 83568 bytes
Ajt5xxglR.txt 2016-10-28 67010 bytes
9zo5AZTyT.cpp 2001-02-17 38595 bytes
lPaRR6vdN.png 2016-01-21 92418 bytes

*/

 



answered 19 hours ago by avibootz

Related questions

...