-1

我使用 C#,我的代码正在读取和移动一些文件。问题是,没有那么多文件可以读取并将它们移动到其他文件夹。但我想一次用 500,1000 个或更多文件测试我的代码。

我可以自己创建每个文件-> 不那么聪明。我可以生成这些文件并为此编写我自己的代码 -> 可以工作,但没有更简单的方法吗?也许已经有一些工具可供开发人员创建测试文件?或者在 c#/.net 中还有其他解决方案吗?

PS:啊忘了说 - 我正在阅读普通的 ascii 文件。如果可能的话,稍后我想创建“类似csv”的文件(字符串由“;”分割)。

4

2 回答 2

4

此代码将创建任意数量的文件,每个文件具有任意数量的行,每个包含任意数量的逗号分隔的随机整数值。

我希望它能让您开始为您的应用程序创建一些测试数据。

    static void Main(string[] args)
    {
        int numFiles = 30;

        for (int fileIndex = 0; fileIndex < numFiles; fileIndex++)
        {
            string randomFileName = Path.Combine(@"c:\temp", Path.GetRandomFileName() + ".csv");

            GenerateTestFile(randomFileName, 20, 10);
        }
    }

    static void GenerateTestFile(string fileName, int numLines, int numValues)
    {
        int[] values = new int[numValues];

        Random random = new Random(DateTime.Now.Millisecond);
        FileInfo f = new FileInfo(fileName);

        using (TextWriter fs = f.CreateText())
        {
            for (int lineIndex = 0; lineIndex < numLines; lineIndex++)
            {
                for (int valIndex = 0; valIndex < values.Length; valIndex++)
                {
                    values[valIndex] = random.Next(100);
                }

                fs.WriteLine(string.Join(",", values));
            }
        }
    }
于 2012-07-23T11:21:46.143 回答
1
        var yourSampleTextStringArray = new[]{"dada","dada","aaa"/*.....*/};
        var rnd = new Random();

        for (int i = 0; i < 10e3; i++)
        {
            var temp = Path.GetTempFileName();
            File.WriteAllLines(temp, yourSampleTextStringArray.Where(line => rnd.NextDouble() > 0.5));
        }
于 2012-07-23T11:42:38.603 回答