在C#中访问随机目录中的随机文件

时间:2011-10-18 10:14:01

标签: c# .net file

对于测试用于测试某些复制方案的测试套件,我编写了一个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 个答案:

答案 0 :(得分:4)

我想我明白你想做什么,但是使用随机性进行测试似乎是错误的做法。

我希望我不是教任何人在这里吸蛋,但测试应该是可重复和可测量的。如果任何测试失败,您需要能够逐步确定出现问题并进行更正。

如果您可以在一个目录中修改文件的属性和内容,那么只要测试的所有参数都相同,您就可以在任何目录中执行此操作。如果测试的参数发生变化,则测试范围会增加(例如,目录或文件的权限使其成为只读)。

答案 1 :(得分:2)

您可以执行以下操作:

  • 创建所有目录的列表(作为字符串列表)
  • 为每个目录创建一个文件列表。
  • 使用随机生成器生成0到dir计数列表之间的数字。
  • 根据以上生成的数字作为索引从列表中选择目录。
  • 应用最后两个步骤为上面选择的目录选择一个随机文件。

答案 2 :(得分:1)

  • 创建字符串列表,每个字符串代表一个文件路径(Directory \ FileName.ext)
  • 生成随机数0 - 字符串-1的长度
  • 根据随机numnber获取索引