如何获取随机文件夹的路径?

时间:2010-03-28 17:02:40

标签: c# .net directory

喜欢从c:\开始(或者主驱动器是什么),然后随机选择路线?甚至不确定如何做到这一点。

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

4 个答案:

答案 0 :(得分:8)

我掷了一个骰子并想出了这个答案:

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

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

答案 1 :(得分:4)

尝试获取目录中所有文件夹的列表,然后生成一个最多为文件夹数的随机数,然后选择与您的随机数相关的文件夹。

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];

答案 2 :(得分:1)

首先,您需要选择一些内容,例如目录中的所有子目录,因此您需要指定该父目录。然后你只需获取目录并随机选择一个:

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)];
}

如果要多次执行此操作,则应考虑创建一个类,以便在创建类的实例时可以读取文件夹并创建随机生成器并存储在类中,然后在方法中使用它们。

答案 3 :(得分:0)

我使用此代码从给定根文件夹的子文件夹树中获取随机文件夹

$query_period = $mysqli->prepare("SELECT * FROM period WHERE date_start<= '?' AND date_end >='?'");
$query_period->bind_param('ss',$date_start,$date_end);