从一个有 100 个文件的文件夹中随机 select 40 个文件
Randomly select 40 files from a folder which has 100 files
我正在尝试从文件夹中随机 select 一定数量的文件。例如,如果一个文件夹有 100 个文件,我想随机 select 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();
我正在尝试从文件夹中随机 select 一定数量的文件。例如,如果一个文件夹有 100 个文件,我想随机 select 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();