В настоящее время я пытаюсь использовать окно диалога с файлом, чтобы сохранить полный путь к файлу 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");
}
}
Вы поняли, как это работает. Это свойство, которое вы должны установить. Используется, когда пользователь вводит «foo» в текстовое поле, он добавляет DefaultExt для поиска файла. Если вы хотите узнать расширение файла, которое выбрал пользователь, вам необходимо использовать System.IO.Path.GetExtension(). –
В соответствии с этим из Microsoft «Получает или задает расширение имени файла по умолчанию. (Унаследовано от FileDialog.)» – tennis779
Слово «Значение по умолчанию» в этом контексте означает, что если файл не имеет расширения, используйте значение из свойства DefaultExt. Он используется в первую очередь при * создании * файлов. В конечном счете, когда вы откроете файл в своем коде, вам понадобится Try ... Catch в любом случае. Выполните всплывающее сообщение, если оно бомбит от неправильного формата файла. – LarsTech