无法保存对话框保存文件
所以我想保存一个随机数列表到一个文本文件,随机数的数量是由用户选择(如果他们输入数字2,然后写入2个随机数字到文件)。我已经将数字输出到Visual Studio的默认bin目录下的文本文件中,但是当我尝试允许用户选择保存文件的位置时,即使在选择所需的目录和文件名并单击保存按钮后,该文件不Explorer中出现无法保存对话框保存文件
这里有什么迄今:
private void writeToFileButton_Click(object sender, EventArgs e)
{
//declare streamwriter object
StreamWriter outputFile;
outputFile = File.CreateText("Random.txt");
//declare my counter, random object, and make variable to store user input
Random rand = new Random();
int desiredEntries;
int.TryParse(numberOfEntriesTextbox.Text, out desiredEntries);
int counter = 1;
//take user input and generate numbers until user input is equal to counter
while(counter <= desiredEntries)
{
outputFile.WriteLine(rand.Next(100));
counter++;
}
//save resulting file in a txt document
if (saveRandomFileDialog.ShowDialog() == DialogResult.OK)
{
outputFile = File.CreateText(saveRandomFileDialog.FileName);
}
else
{
MessageBox.Show("you suck");
}
outputFile.Close();
}
你打开一个文件:
outputFile = File.CreateText("Random.txt");
写入该文件,然后后ÿ ou写入文件,您然后询问用户他们想要保存文件的位置。我在这里看到一个问题。 :)
这一个替换上述行:
outputFile = File.CreateText(saveRandomFileDialog.FileName);
编辑:
基本上,你的代码应该是这样的(我删除了你吸的一部分,但随意侮辱你的用户如果你愿意):)
if (saveRandomFileDialog.ShowDialog() != DialogResult.OK) {
return;
}
using (StreamWriter outputFile = File.CreateText(saveRandomFileDialog.FileName)) {
Random rand = new Random();
int desiredEntries;
int.TryParse(numberOfEntriesTextbox.Text, out desiredEntries);
int counter = 1;
while (counter <= desiredEntries) {
outputFile.WriteLine(rand.Next(100));
counter++;
}
}
当我这样做时,Visual Studio会抛出一个异常 – Dlorwisdom 2014-11-04 19:52:20
那会是什么异常? – aquinas 2014-11-04 19:53:53
如果op只是替换当前代码中的那一行,saveRandomFileDialog将没有设置文件名。保存位置需要在文件创建之前设置。 – 2014-11-04 19:59:01
它抛出一个错误或只是不保存(即显示'你吸'信息)? – 2014-11-04 19:48:39
我上面的方式,选择保存文件后程序正常运行,所以它不显示“你吸”的消息,并没有抛出异常,但它不保存文件。 – Dlorwisdom 2014-11-04 19:52:50
询问他们先保存在哪里。然后在写任何东西之前将文件名传递给createtext。 – 2014-11-04 19:58:08