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

本文关键字:随机文件 随机 访问 | 更新日期: 2023-09-27 18:11:39

对于一个测试套件来测试一些复制场景,我编写了一个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()));

谢谢你的帮助。

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

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

我希望我在这里没有教任何人吮蛋,但测试应该是可重复和可测量的。如果任何测试失败,您需要能够逐步进行测试,找出出错的地方并加以纠正。

如果您可以在一个目录中修改文件的属性和内容,那么只要测试的所有参数都相同,您就应该能够在任何目录中进行修改。如果测试的参数改变了,那么测试的范围就增加了(例如,对目录或文件的权限使其只读)。

你可以这样做:

  • 创建所有目录的列表(作为字符串列表)
  • 为每个目录创建一个文件列表。
  • 使用随机生成器生成一个介于0和目录计数之间的数字。
  • 根据上述生成的数字从列表中选择目录作为索引。
  • 应用最后2步为上面选择的目录随机选择文件。
  • 创建一个字符串列表,每个字符串代表一个文件路径(Directory'FileName.ext)
  • 生成随机数0 -字符串长度-1
  • 获取基于随机数的索引