我如何得到一个随机文件夹的路径?(How do I get the path of a random

2019-10-30 02:20发布

像在C开始:\(或任何主要驱动器是),然后随机取路线? 甚至不知道该怎么做。

public sealed static class FolderHelper
{
    public static string GetRandomFolder()
    {
        // do work
    }
}

Answer 1:

尝试获得目录中的所有文件夹列表,然后生成一个随机数多达文件夹的数量,然后选择与您的随机数的文件夹。

System.IO.DirectoryInfo[] subDirs;
System.IO.DirectoryInfo root;
// assign the value of your root here
subDirs = root.GetDirectories();
Random random = new Random();
int directory = random.Next(subDirs.Length);
System.IO.DirectoryInfo randomDirectory = subDirs[directory];


Answer 2:

我滚模具内,用这样的回答来了:

  public static string GetRandomFolder()
    {
        return "4";
    }

或者你可以使用Random.Next()。



Answer 3:

首先,你需要的东西从,例如在目录中所有子目录来挑去,那么你需要指定父目录。 然后,你刚才得到的目录,并选择一个随机:

public static string GetRandomFolder() {
  string parentFolder = @"c:\some\folder\somewhere";
  string[] folders = Directory.GetDirectories(parentFolder);
  Random rnd = new Random();
  return folders[rnd.Next(folders.Length)];
}

如果你打算做其再次,你应该考虑一类的话,这样就可以在文件夹中读取和创建随机数生成器,并在类存储在创建类的实例,然后只在该方法中使用它们。



Answer 4:

我用这个代码从一个给定的根文件夹的子文件夹树中的文件夹随机

private string GetRandomFolder(string root)
{
  var rnd = new Random();
  var path = root;
  var depth = rnd.Next(0, 7);

  for (int i = 0; i < depth; i++)
  {
    path = this.GetRandomFolder(path);
    if (path == "")
      break;
  }

  return output;
}
private string GetRandomSubFolder(string root)
{
  var di = new DirectoryInfo(root);
  var dirs = di.GetDirectories();
  var rnd = new Random();

  if (dirs.Length == 0)
    return "";

  return dirs[rnd.Next(0, dirs.Length - 1)].FullName;
}


文章来源: How do I get the path of a random folder?