如何在C#中生成随机命名的文本文件?

我必须创建一个循环来生成一个5个随机选择的字母字符串,然后在该名称下创建一个文本文件,让我们在C://中说,我该怎么做? 生成名称和在目录中创建文件。 我想我必须从ascii代码中选择5个随机数将它们添加到一个数组中,然后将它们转换为相应的字符,以便能够将其用作名称。 我会如何将它们转换为角色并用它们组成一个字符串,你能帮助我吗?

如果您想自己创建文件名,请将要使用的字符放在字符串中并从中选择:

// selected characters string chars = "2346789ABCDEFGHJKLMNPQRTUVWXYZabcdefghjkmnpqrtuvwxyz"; // create random generator Random rnd = new Random(); string name; do { // create name name = string.Empty; while (name.Length < 5) { name += chars.Substring(rnd.Next(chars.Length), 1); } // add extension name += ".txt"; // check against files in the folder } while (File.Exists(Path.Compbine(folderPath, name))) 

查看System.IO.Path类的GetTempFileName和GetRandomFileName方法。

  • GetRandomFileName创建一个“加密强大”的文件名,并且与您要求的文件名相近。

  • GetTempFileName在目录中创建一个唯一的文件名 – 并且还创建一个具有该名称的零字节文件 – 帮助确保其唯一性。 这可能更接近您实际需要的内容。

Path.GetTempFileName()或Path.GetRandomFileName()方法怎么样? 还要考虑文件系统不是事务性的,两个并行进程可以创建相同的文件名。 TempFileName()应该返回唯一的名称(通过规范),所以’也许’你不需要关心如果临时目录可以适合您的解决方案。

或者您可以使用GUID生成唯一的文件名:

维基百科:

虽然不保证每个生成的GUID是唯一的,但是唯一密钥的总数(2 ^ 128或3.4×10 ^ 38)是如此之大以至于生成两次相同数字的概率是无穷小的。

 string text = "Sample..."; string path = "D:\\Temp\\"; if (!path.EndsWith("\\")) path += "\\"; string filename = path + Guid.NewGuid().ToString() + ".txt"; while (File.Exists(filename)) filename = path + Guid.NewGuid().ToString() + ".txt"; TextWriter writer = null; try { writer = new StreamWriter(filename); writer.WriteLine(text); writer.Close(); } catch (Exception e) { MessageBox.Show("Exception occured: " + e.ToString()); } finally { if (writer != null) writer.Close(); } 

这里发布了一段生成随机字符串(字母)的代码。 此处提供了创建文件的代码(也使用随机文件名)。

在Google上找到了这个( 来源 ):

 ///  /// Generates a random string with the given length ///  /// Size of the string /// If true, generate lowercase string /// Random string private string RandomString(int size, bool lowerCase) { StringBuilder builder = new StringBuilder(); Random random = new Random(); char ch ; for(int i=0; i 

之后,使用文件流来创建和写入文件。