从文件夹中选择随机文件

时间:2014-06-09 06:24:11

标签: c# asp.net file file-io directory

我的文件夹包含100多个zip文件。我想从文件夹中选择随机6个zip文件。

我试试:

        DirectoryInfo test= new  DirectoryInfo(@"C:\test").GetFiles();
        foreach (FileInfo file in test.GetFiles())
        {

            Random R = new Random(); //try to apply random logic but fail.

            if (file.Extension == ".zip")
            {
                string a="";
                for (int ListTemplate = 0; ListTemplate < 6; ListTemplate++)
                {
                    a += file.FullName; //Want to choose random 6 files.
                }

            }
        }

有没有办法做到这一点。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

为此,您需要随机化文件的排序顺序。

使用显示的排序in this answer(如果需要,您也可以使用更多的加密方法)

var rnd = new System.Random();
var files = Directory.GetFiles(pathToDirectory, "*.zip")
                     .OrderBy(x => rnd.Next())
                     .Take(numOfFilesThatYouWant);

然后,您可以评估files中的foreach。它应该以随机顺序给出您要处理的文件数。