无法保存对话框保存文件

问题描述:

所以我想保存一个随机数列表到一个文本文件,随机数的数量是由用户选择(如果他们输入数字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(); 
     } 
+1

它抛出一个错误或只是不保存(即显示'你吸'信息)? – 2014-11-04 19:48:39

+0

我上面的方式,选择保存文件后程序正常运行,所以它不显示“你吸”的消息,并没有抛出异常,但它不保存文件。 – Dlorwisdom 2014-11-04 19:52:50

+1

询问他们先保存在哪里。然后在写任何东西之前将文件名传递给createtext。 – 2014-11-04 19:58:08

你打开一个文件:

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++; 
    } 
} 
+0

当我这样做时,Visual Studio会抛出一个异常 – Dlorwisdom 2014-11-04 19:52:20

+0

那会是什么异常? – aquinas 2014-11-04 19:53:53

+1

如果op只是替换当前代码中的那一行,saveRandomFileDialog将没有设置文件名。保存位置需要在文件创建之前设置。 – 2014-11-04 19:59:01