生成许多文件不工作

本文关键字:工作 文件 许多 | 更新日期: 2023-09-27 18:10:51

我试图生成几个文件,所以我写了这段代码,其中value得到797,但我只得到一个文件创建,为什么?不应该是797个文件吗?我的代码有什么问题?:

    private void button3_Click(object sender, EventArgs e)
    {
        int value = bdCleanList.Count() / Int32.Parse(textBox7.Text);
        MessageBox.Show(value.ToString());
        string bases_generadas = 
            System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                   "bases_generadas");
        for (int i = 1; i < value; i++)
        {
            string newFileName = "bases_generadas_" + 
                                 DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss") + 
                                 ".txt";
            using (System.IO.FileStream fs = 
                      System.IO.File.Create(
                         System.IO.Path.Combine(bases_generadas, newFileName)))
            {
                for (byte j = 0; j < 10; j++)
                {
                    fs.WriteByte(j);
                }
            }
        }
    }

编辑作为@andrey-shchekin建议我添加一个inewFileName,所以现在的代码是这个:

string newFileName = "bases_generadas_" + i + 
                     DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss") + ".txt";

但是现在我再次运行代码,value采用4,但只创建了3个文件:

bases_generadas_124-04-2013-11-45-08.txt
bases_generadas_224-04-2013-11-45-08.txt
bases_generadas_324-04-2013-11-45-08.txt

为什么?

生成许多文件不工作

正如Reynier所说,您的代码可以在一秒钟内执行并最终创建单个文件。

可以使用,DateTime.Now.Ticks.ToString()

string newFileName = "bases_generadas_" + DateTime.Now.Ticks.ToString() + ".txt";

或者,您可以简单地在for循环中使用i来获取唯一名称

string newFileName = "bases_generadas_" + 
                     DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss") + 
                     "-" + i.ToString() + ".txt";

如果你的代码足够快,DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss")将导致所有797次完全相同的文件名