如何从另一个函数访问文件

时间:2015-06-15 18:39:13

标签: c# wpf button

我目前正在开发一个C#WPF应用程序,它看起来如下所示。我要做的是这个,第一个按钮,当按下时,基本上打开一个浏览对话框,您可以在其中选择多个文件。我也想访问其他按钮内的那些路径。最后,我希望能够单击浏览按钮,选择一个文件,然后按第二个按钮在路径上执行功能。任何帮助将不胜感激!

private void Button_Click1(object sender, RoutedEventArgs e) //BROWSE BUTTON
{
    Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
    dlg.Multiselect = true;
    dlg.FileName = "Document"; 
    dlg.DefaultExt = ".txt";  
    dlg.Filter = "Text documents (.txt)|*.txt"; 
    foreach (String file in dlg.FileNames)
    {
      // do something
    }
}    

private void Button_Click(object sender, RoutedEventArgs e, string p)
{
    myFunction(p);
}

1 个答案:

答案 0 :(得分:3)

您可以在Button_Click1方法之外设置一个私有变量,该变量将保存所选的文件名。

string[] files;

private void Button_Click1(object sender, RoutedEventArgs e) //BROWSE BUTTON
{
    Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
    dlg.Multiselect = true;
    dlg.FileName = "Document"; 
    dlg.DefaultExt = ".txt";  
    dlg.Filter = "Text documents (.txt)|*.txt"; 

    Nullable<bool> result = dlg.ShowDialog();

    if (result == true)
        files = dlg.FileNames;
    else
    {
        //Do something useful if the user cancels the dialog
    }
} 

然后在您的其他方法中,只需引用files变量,该变量将保存您选择的文件名数组。

使用示例:

for (int i = 0; i < files.Length; i++)
{
    myFunction(files[i]);
}

上面的代码将遍历数组中的每个文件并调用myFunction方法。