2014-09-04 64 views
0

我使用这个代码来生成所选文件的路径:通路径单击

 private void LoadNewFile() 
{ 
    OpenFileDialog ofd = new OpenFileDialog(); 
    string _xmlPath1 = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); 
    System.Windows.Forms.DialogResult dr = ofd.ShowDialog(); 
    if (dr == DialogResult.OK) 
    { 
     userSelectedFilePath = ofd.FileName; 
    } 
} 

     private void tbFilePath_TextChanged(object sender, EventArgs e) 
     { 

     } 

之前,我用这个代码来传递数据:

private void btn_compare_Click(object sender, EventArgs e) 
     { 
      string x1 = System.IO.File.ReadAllText(@"C:\Users", Encoding.UTF8); 

怎么办我修改它,而不是x1,手动采取路径,我需要它等于xmlPath1,所以字符串x1 = xmlPath1

+0

请详细解释一下。 – 2014-09-04 09:23:52

+0

好吧,在我刚刚手动插入文件的路径之前,你可以看到,现在我从对话框中取出它,并且我需要指定x1变量的路径 – MAL 2014-09-04 09:25:06

+0

你能帮我吗? – MAL 2014-09-04 09:35:31

回答

0

只需将_xmlPath1更改为字段,并且您可以从y内的任何方法访问它我们班。

例子:

public class MyClass 
{ 
    protected String _xmlPath1; 

    ' insert your methods here 
} 

如果你的方法是不是你要更加拓宽_xmlPath1范围相同的类。

编辑:改变VB.net语法C#

+0

嗯,我不知道我应该在哪里插入代码,我的方法是在同一类 – MAL 2014-09-04 09:44:01

+0

'MyClass'只是您的真实类名的占位符。只需将该行直接放在类定义的下面。有关此主题的进一步阅读,请查看此[链接](http://msdn.microsoft.com/zh-cn/library/ms173118%28v=vs.80%29.aspx) – DMAN 2014-09-04 09:53:38

0

1)如果userSelectedFilePath是私人领域,你可以用它在btn_compare_Click
2)如果它是一个局部变量,使它成为一个私有字段,然后看看1
3)使该方法返回文件

private string LoadNewFile() 
{ 
    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(LoadNewFile(), Encoding.UTF8); 
} 

选项3是最好的方式,所以你可以避免额外的字段,并使btn_compare_Click独立于代码的其余部分。
在这种情况下,您还应该给它一个更好的名字,如GetFileToRead()