2014-02-04 4 views
1

Я хочу сделать кнопку, котораяПолучения пути к файлу из открытого файла диалогового

  • открывает файл из некоторого места в файловой системе,
  • получает свой путь к файлу,
  • передать файл путь аргумент к методу
  • открыть этот файл и сделать что-то с ним.

Я сделал кнопку, как это:

private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      OpenFileDialog fDialog = new OpenFileDialog(); 

      fDialog.Title = "Open XML file"; 
      fDialog.Filter = "XML files|*.config"; 
      fDialog.InitialDirectory = @"C:\"; 
      fDialog.ShowDialog(); 
     } 

Я уже сделал метод, который считывает с жестко прописанных, но кто-то может помочь мне об этой переменной пути к файлу части?

метод считывает файл с XmlTextReader так:

private void ReadAdvancedConfigFile() 
     { 
      XElement root = null; 
      root = XElement.Load(new XmlTextReader(@"C:\Users\nemanja.mosorinski\Downloads\__Research-master\__Research-master\SEDMSVSPackage\VisualStudioPackage\AppRes\ConfigFiles\Unity.config")); 
     } 

Поэтому в основном я хочу поставить новый путь к файлу для некоторого файла, основанного OpenFileDialog в корневой переменной.

+0

Почему вы инициализировать переменную в нуль? –

ответ

2

Изменить эту строку:

fDialog.ShowDialog(); 

To:

bool? control = fDialog.ShowDialog(); 
if(control.Value) 
{ 
    var filePath = fDialog.FileName; 
    ReadAdvancedConfigFile(filePath) 
} 

Кроме того, вы должны изменить подпись метода

private void ReadAdvancedConfigFile(string path) 
+0

У меня есть ошибка для DialogResult.OK. В нем указано, что «System.Nullable » не содержит определения для «OK». –

+0

@ nemo_87 use this: 'System.Windows.Forms.DialogResult.OK' –

+0

Теперь он говорит: Ошибка 1 Оператор '==' не может быть применен к операндам типа 'bool?' и 'System.Windows.Forms.DialogResult' –

Смежные вопросы