2014-07-10 12 views
0

В настоящее время я пытаюсь использовать окно диалога с файлом, чтобы сохранить полный путь к файлу Excel. Я хочу проверить, что файл является фактическим файлом Excel. В настоящее время код, показанный ниже, возвращает пустую строку, когда я использую свойство в OpenFileDialog.DefaultExt. Свойство должно содержать расширение, когда я отлаживаю строку, пустую. Кто-нибудь понимает, почему это свойство пустое, я хочу, чтобы оно содержало «xlsx»OpenFileDialogue.DefaultExt возвращает пустую строку

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

private void Browse_for_Excel_Click(object sender, EventArgs e) 
    { 
     //Want to bring up a window that allows you to select an Excel File 

     OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
     openFileDialog1.ShowDialog(); 

     bool FileISGood = openFileDialog1.CheckFileExists; 
     bool FilePathGood = openFileDialog1.CheckPathExists; 


     string FileName = openFileDialog1.SafeFileName; 
     string extension=openFileDialog1.DefaultExt; //Returns an empty string @"" 
     Console.WriteLine(extension); 
     if((FileISGood == true && FilePathGood ==true) && ([email protected]"xlsx") ) { 

      Console.WriteLine("insiide if statemetn"); 

     } 


    } 
+1

Вы поняли, как это работает. Это свойство, которое вы должны установить. Используется, когда пользователь вводит «foo» в текстовое поле, он добавляет DefaultExt для поиска файла. Если вы хотите узнать расширение файла, которое выбрал пользователь, вам необходимо использовать System.IO.Path.GetExtension(). –

+0

В соответствии с этим из Microsoft «Получает или задает расширение имени файла по умолчанию. (Унаследовано от FileDialog.)» – tennis779

+0

Слово «Значение по умолчанию» в этом контексте означает, что если файл не имеет расширения, используйте значение из свойства DefaultExt. Он используется в первую очередь при * создании * файлов. В конечном счете, когда вы откроете файл в своем коде, вам понадобится Try ... Catch в любом случае. Выполните всплывающее сообщение, если оно бомбит от неправильного формата файла. – LarsTech

ответ

0

Свойство DefaultExt используется при создании файлов, когда имя файла не содержит расширения.

Try используя Filter property, чтобы ограничить файлы можно просмотреть в диалоговом окне списка:

using (OpenFileDialog openFileDialog1 = new OpenFileDialog()) { 
    openFileDialog1.Filter = "Excel Files (*.xlsx)|*.xlsx"; 
    if (openFileDialog1.ShowDialog() == DialogResult.OK) { 
    // do work... 
    } 
} 
+0

Спасибо, что решает проблему, теперь пользователь может выбрать только файлы Excel, спасибо! – tennis779

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