выберите случайный файл из каталога

$(document).ready(() => {
  let proje = document.querySelectorAll(".proje");
  let kapsayici = document.querySelector("#proje-kapsayici");
  let modal = document.createElement("div");

  class Requests {
    get(url) {
      return new Promise((resolve, reject) => {
        fetch(url)
          .then(res => res.json())
          .then(data => resolve(data))
          .catch(err => reject(err));
      });
    }

    projectProps(idName) {
      Object.assign(modal, {
        idName: idName,
        className: "modal fade"
      });
      modal.setAttribute("tabindex", "-1");
      modal.setAttribute("role", "dialog");
      modal.setAttribute("aria-labelledby", "exampleModalLabel");
      modal.setAttribute("aria-hidden", true);
    }
  }
  const rq = new Requests();

  rq.get("../json/portfolyo.json").then(data => {
    data.forEach((item, index) => {
      proje[index].setAttribute("data-target", item.dataTarget);
    });
  });
});

14
задан Samuel 13 April 2009 в 00:46
поделиться

6 ответов

выбрать случайный файл из каталога

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;
    }
6
ответ дан 1 December 2019 в 06:16
поделиться

Получить все файлы в массиве, а затем получить один случайным образом

var rand = new Random();
var files = Directory.GetFiles("c:\\wallpapers","*.jpg");
return files[rand.Next(files.Length)];
28
ответ дан 1 December 2019 в 06:16
поделиться

Если вы делаете это для обоев, вы не хотите просто выбирать файл наугад, потому что он выиграл не отображаются для пользователя случайным образом.

Что, если вы выберете одно и то же три раза подряд? Или чередовать два?

Это «случайно», но пользователям это не нравится.

См. Этот пост о том, как отображать случайные изображения так, как пользователям нравится .

10
ответ дан 1 December 2019 в 06:16
поделиться
var files = new DirectoryInfo(@"C:\dev").GetFiles();
int index = new Random().Next(0, files.Length);

Console.WriteLine(files[index].Name);
5
ответ дан 1 December 2019 в 06:16
поделиться

почему бы просто:

  1. получить файлы в массив
  2. использовать класс Random, чтобы выбрать случайное число между 0 и файлами.Length
  3. Получить файл из массива, используя случайное число в качестве индекса
1
ответ дан 1 December 2019 в 06:16
поделиться

Используйте Directory.GetFiles (...) , чтобы получить массив имен файлов и использовать класс Random для выбора случайного файла.

1
ответ дан 1 December 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: