/ / sélectionne un fichier aléatoire dans le répertoire - c #, .net, fichier, aléatoire

sélectionner un fichier aléatoire dans le répertoire - c #, .net, fichier, random

J’ai vu quelques exemples, mais aucun jusqu’à présent en C #, quel est le meilleur moyen de sélectionner un fichier aléatoire dans un répertoire?

Dans ce cas particulier, je souhaite sélectionner un fond d'écran dans "C: fonds d'écran" toutes les 15 minutes environ.

Merci.

Réponses:

25 pour la réponse № 1

Récupère tous les fichiers d'un tableau, puis en récupère un au hasard

var rand = new Random();
var files = Directory.GetFiles("c:\wallpapers","*.jpg");
return files[rand.Next(files.Length)];

9 pour la réponse № 2

Si vous faites cela pour des fonds d’écran, vous ne voudrez pas simplement sélectionner un fichier au hasard car il ne paraîtra pas aléatoire à l’utilisateur.

Et si vous choisissez le même trois fois de suite? Ou alterner entre deux?

Cela "s" aléatoire ", mais les utilisateurs ne l'aiment pas.

Voir ce post sur la façon de afficher des images aléatoires d'une manière que les utilisateurs aimeront.


4 pour la réponse № 3

sélectionner un fichier au hasard dans le répertoire

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;
}

3 pour la réponse № 4
var files = new DirectoryInfo(@"C:dev").GetFiles();
int index = new Random().Next(0, files.Length);

Console.WriteLine(files[index].Name);

0 pour la réponse № 5

pourquoi pas simplement:

  1. mettre les fichiers dans un tableau
  2. utilisez la classe Random pour sélectionner un nombre aléatoire compris entre 0 et files.Length
  3. Prenez le fichier du tableau en utilisant le nombre aléatoire comme index

0 pour la réponse № 6

Utilisez le Directory.GetFiles(...) pour obtenir le tableau de noms de fichiers et utiliser le Random classe pour sélectionner un fichier aléatoire.