生成许多文件不工作
本文关键字:工作 文件 许多 | 更新日期: 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建议我添加一个i
到newFileName
,所以现在的代码是这个:
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次完全相同的文件名