В дополнение к тому, что сказали все, может оказаться полезным свойство FileDialog.Filter
.
Вы можете использовать его для ограничения разрешенных расширений следующим образом:
openFileDialog1.Filter = "Excel workbooks(*.xls;*.xlsx)|*.xls;*.xlsx";
Это будет показывать только файлы с расширениями ".xls" и ".xlsx", не оставляя пользователю выбора, кроме как выбирать файлы с правильными расширениями.
Кроме того, если вы решили проверить расширение файла, вам следует использовать сравнение без учета регистра, поскольку очень часто можно найти пути с расширениями в верхнем регистре (например, «SomeName.XLSX»). Вы можете сделать это, используя метод String.Equals
:
string ext = System.IO.Path.GetExtension(file);
if (!string.Equals(ext, ".xls", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(ext, ".xlsx", StringComparison.OrdinalIgnoreCase))
{
//...
}
Обратите внимание, что даже если вы использовали FileDialog.Filter
, вам все равно может потребоваться подтвердить, что выбранный файл имеет правильное расширение в событии FileDialog.FileOk
, поскольку OpenFileDialog может позволить выбирать ярлыки, которые ссылаются на файлы с различные расширения, хотя допустимые расширения ограничены свойством Filter
.