我正在尝试生成多个文件,因此我在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
为什么?
答案 0 :(得分:2)
如果您的代码足够快DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss")
将导致所有797次完全相同的文件名。
答案 1 :(得分:2)
正如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";