2014-09-04 21 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()