2010-03-28 58 views
0

像c:\開始一樣(或者主驅動器是什麼),然後隨機採取路線?甚至不知道如何做到這一點。如何獲取隨機文件夾的路徑?

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

'回報的子文件夾樹中的文件夾,隨機「C:\\的Windows \\ System32下」;'。應該足夠隨機。認真地說,還有更多的信息?你想要多少隨機數?我猜你不希望列出用戶計算機上的所有文件夾,並從該列表中返回一個隨機文件夾,因爲這需要很長時間(即使限制了對C:\的搜索,它仍然可能需要長時間)。隨機系統文件夾是否足夠好? – IVlad 2010-03-28 17:08:45

+1

爲什麼你想要一個隨機文件夾? ** SpectateSwamp,是你嗎?**你是否將SSDS移植到.NET!? – Aaronaught 2010-03-28 17:15:45

回答

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

我滾模具內,用這樣的回答來了:

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

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

+0

對於'Random.Next'爲+1。 -1代表xkcd參考。 – Aaronaught 2010-03-28 17:22:11

+0

之前有人想到這個? – 2010-03-28 17:30:25

+0

http://xkcd.com/221/ – Guffa 2010-03-28 18:06:02

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

如果你打算做其再次,你應該考慮一類的話,這樣就可以在文件夾中讀取和創建隨機生成器並在創建類的實例時存儲在類中,然後在方法中使用它們。

0

我用這個代碼從一個給定的根文件夾

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; 
} 
相關問題