Доступ к случайным файлам в случайных каталогах в C # - PullRequest
1 голос
/ 18 октября 2011

Для тестового набора для тестирования некоторых сценариев репликации я пишу FileAccesser.Это должно получить доступ к случайным файлам (в случайных подкаталогах) в данном каталоге и удалить, создать, переименовать и изменить файл и / или содержимое.Я ищу способ доступа к случайному файлу в случайном подкаталоге.Любые предложения?

Мое решение получить список всех файлов во всех подкаталогах:

var _Directory = new DirectoryInfo(args[1]);
var _Files = _Directory.GetFiles("*", SearchOption.AllDirectories);

Теперь я могу получить доступ к случайному файлу с

Random _Random = new Random();
var _RandomFile = _Files.ElementAt(_Random.Next(_Files.Count()));

THX за вашу помощь.

Ответы [ 3 ]

4 голосов
/ 18 октября 2011

Мне кажется, я понимаю, что вы хотите сделать, но использование случайности для тестирования кажется неправильным.

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

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

2 голосов
/ 18 октября 2011

Вы можете сделать что-то вроде:

  • Создать список всех каталогов (в виде списка строк)
  • Для каждого каталога создайте список файлов в нем.
  • Используя генератор случайных чисел, сгенерируйте число от 0 до списка счетчиков dir.
  • Выберите dir из списка на основе созданного выше номера в качестве индекса.
  • Примените последние 2 шагадля выбора случайного файла для указанного выше каталога.
1 голос
/ 18 октября 2011
  • Создать список строк, каждая строка представляет путь к файлу (Directory \ FileName.ext)
  • Генерация случайного числа 0 - длина строки-1
  • Получить индекс на основе случайного числа
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...