2014-09-04 29 views
0

我有这个代码在这里,我才能用它来上传一些东西,在Windows窗体:如何使用openfiledialog控件将文件路径传递给变量?

public Form1() 
{ 
    InitializeComponent(); 
} 
private void btnLoad_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog ofd = new OpenFileDialog(); 
    System.Windows.Forms.DialogResult dr = ofd.ShowDialog(); 
    if (dr == DialogResult.OK) 
    { 
     userSelectedFilePath = ofd.FileName; 
    } 
} 

public string userSelectedFilePath 
{ 
    get 
    { return tbFilePath.Text; 
    } 
    set 
    {tbFilePath.Text = value; 
    } 
} 

private void btn_compare_Click(object sender, EventArgs e) 
{ 
    string Xml1 = tbFilePath.Text; 
    string Xml2 = System.IO.File.ReadAllText(@"C:"); 
    compare.comparison(Xml1, Xml2); 

} 

显然,我做错了什么,因为我不及格,当我有我需要的tbFilePath.Textstring Xml1 = tbFilePath.Text;

这是什么?

+0

在btn_compare_Click函数的代码没有意义。 Xml1包含文件的路径,而Xml2包含文件的内容,但文件是C :,这是一个目录。没有办法,这可以工作。你是否试图提取两个不同文件的内容并比较它们?那是你的compare()方法的工作原理吗? – siride 2014-09-04 13:24:28

+0

另外,您可以通过使用调试或者在分配变量后放置Console.WriteLine()语句以查看它们包含的内容来帮助自己。你可能会发现它们包含正确的东西。 – siride 2014-09-04 13:24:59

+0

哦,我不知道,我只是想通过我选择的文件的路径 – MAL 2014-09-04 13:25:06

回答

1

你可能想要的是比较2个文件的内容。
作为siride说你的代码没有意义(见他的评论)
添加这个方法到类

private string FindFile() 
{ 
    OpenFileDialog ofd = new OpenFileDialog(); 
    string _xmlPath1 = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); 
    System.Windows.Forms.DialogResult dr = ofd.ShowDialog(); 
    if (dr == DialogResult.OK) 
     return ofd.FileName; 
    else 
     return null; 

} 

然后你可以这样做:

private void btn_compare_Click(object sender, EventArgs e) 
{ 
    string x1 = System.IO.File.ReadAllText(FindFile(), Encoding.UTF8); 
    string x2 = System.IO.File.ReadAllText(FindFile(), Encoding.UTF8); 
    //Or if you already have the second file 
    //string x2 = System.IO.File.ReadAllText(@"C:\YourPath\someFileName.xml", Encoding.UTF8); 
    compare.comparison(x1, x2); 
} 
相关问题