2010-02-22 187 views
0

好的,所以我今天刚开始自学C#,终于完全被卡住了。我正在尝试使用浏览选项来选择文件。文件路径将显示在textBox1中。然后,我需要通过单击启动按钮来加载textBox1。不支持给定路径的格式。刚开始使用C#

我目前已将textBox1.Text设置为文件的位置。当我在文本框中键入\ TestList.xml时,它会很好地完成它的工作。然而,任何其他时间,就像我输入c:\ TestList.xml或c:\ TestList.xml一样,它只是说它不能使用textBox1.Text格式作为文件位置。任何想法如何解决这个问题?这里是代码。我在导致问题的行旁边添加了一堆破折号。非常感谢你的帮助。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Xml; 

namespace Combined 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog fdlg = new OpenFileDialog(); 
      fdlg.Title = "C# Corner Open File Dialog"; 
      fdlg.InitialDirectory = @"c:\"; 
      fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
      fdlg.FilterIndex = 2; 
      fdlg.RestoreDirectory = true; 
      if (fdlg.ShowDialog() == DialogResult.OK) 
      { 
       textBox1.Text = fdlg.FileName; 
      } 
     } 

     private void button2_Click(object sender, EventArgs e) 
     {       
       XmlDataDocument xmldata = new XmlDataDocument(); 

      // causing problem 
       xmldata.DataSet.ReadXml(Application.StartupPath + textBox1.Text); 

       dataGridView1.DataSource = xmldata.DataSet; 
       dataGridView1.DataMember = "Unit"; 
     } 
    } 
} 
+0

@asad:你的忍者编辑将使它很难让人理解OP做错了什么。 – Dave 2010-02-22 06:51:38

+0

希望现在好一点 – 2010-02-22 06:55:27

+0

在这种情况下,一个好的调试策略是检查实际传递给给你的问题的方法。在你的情况下,在readXml()行设置一个断点并检查Application.StartupPath + textBox1.Text的值 或者,将代码更改为: string whatIsWrong = Application.StartupPath + textBox1.Text; MessageBox.Show(whatIsWrong); xmldata.DataSet.ReadXml(whatIsWrong); 您会看到@Ramesh显示的无效路径。 – JeffH 2010-03-29 20:33:43

回答

1

您的错误是您输入了绝对路径,但它会被附加到另一个绝对路径。

+0

现在没有人能看到你有问题的代码,但是如果你设置一个字符串变量为你想要打开的(启动路径+文件名),你会发现你的错误,如果你打印到控制台。你最终会得到一个像c:\ program filesc:\ test.xml这样的文件名,这当然是无效的。 – Dave 2010-02-22 06:54:53

1

Application.StartupPath返回正在运行的exe文件的路径(获取启动应用程序的可执行文件的路径,不包括可执行文件名称,from MSDN),所以如果你给/TestList.xml,它会从滨

如果你给C:\ TestList.xml,则追加的路径是这样的

“d:\ urapppath \ BIN \ C:\ TestList.xml”,其无效对...

相关问题