从包含100个文件的文件夹中随机选择40个文件



我试图从文件夹中随机选择一定数量的文件。例如,如果一个文件夹有100个文件,我想随机选择40个文件,而不是前40个。

string sourceFolder = //unc path;
var dir = new DirectoryInfo(sourceFolder );
var allFiles = dir.GetFiles("*.pdf");
int fileCount = allFiles.Length; // 100 files
int folderOne = 60;
int folderTwo = 40;
if (fileCount > 0)
{
// select 60 files randomly and move them to folderOne
}

我试着在C#中使用Random函数,但我无法理解。

var random = new Random();
int index = random.Next(0, fileCount - 1);
var file = allFiles[index].FullName;

如有任何帮助,我们将不胜感激。感谢

随机化文件的顺序,然后可以简单地将前60个复制到一个位置,将后40个复制到其他位置。

例如

var rnd = new Random();
var shuffled = allFiles.OrderBy(f => rnd.Next()).ToList();

最新更新