如何解决从具有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#中使用随机函数,但无法理解。
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();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。