Mou*_*ouk 28
获取数组中的所有文件,然后随机检索一个文件
var rand = new Random();
var files = Directory.GetFiles("c:\\wallpapers","*.jpg");
return files[rand.Next(files.Length)];
Run Code Online (Sandbox Code Playgroud)
Jas*_*hen 10
如果您正在为壁纸执行此操作,则不希望随意选择文件,因为它不会对用户显示为随机.
如果你连续三次选择同一个怎么办?还是两个之间交替?
这是"随机的",但用户并不喜欢它.
请参阅此文章,了解如何以用户喜欢的方式显示随机图片.
private string getrandomfile2(string path)
{
string file = null;
if (!string.IsNullOrEmpty(path))
{
var extensions = new string[] { ".png", ".jpg", ".gif" };
try
{
var di = new DirectoryInfo(path);
var rgFiles = di.GetFiles("*.*").Where( f => extensions.Contains( f.Extension.ToLower()));
Random R = new Random();
file = rgFiles.ElementAt(R.Next(0,rgFiles.Count())).FullName;
}
// probably should only catch specific exceptions
// throwable by the above methods.
catch {}
}
return file;
}
Run Code Online (Sandbox Code Playgroud)
var files = new DirectoryInfo(@"C:\dev").GetFiles();
int index = new Random().Next(0, files.Length);
Console.WriteLine(files[index].Name);
Run Code Online (Sandbox Code Playgroud)