I have requirement where when showOpenDialog , user enters path manually and it does not exist, 
another dialog pops up and asks if path should be created automatically.

However I only see a callback at https://github.com/electron/electron/blob/master/docs/api/dialog.md#dialogshowopendialogbrowserwindow-options-callback

and i cant capture error so I can open another dialog.Electron just htorws error its self with following message
```
Path does not exist.
Check the path and try again.
```
see here as windows supports it
https://msdn.microsoft.com/en-us/library/system.windows.forms.filedialog.checkfileexists(v=vs.110).aspx

something like will be very helpful
```
openFileDialog1.CheckFileExists = true;
openFileDialog1.CheckPathExists = true;.
```
atom/browser/ui/file_dialog_win.cc
base::File::Info file_info;
  return base::GetFileInfo(path, &file_info) ?
      file_info.is_directory : path.EndsWithSeparator();
}
void ConvertFilters(const Filters& filters,
                    std::vector<std::wstring>* buffer,
                    std::vector<COMDLG_FILTERSPEC>* filterspec) {
  if (filters.empty()) {
    COMDLG_FILTERSPEC spec = { L"All Files (*.*)", L"*.*" };
    filterspec->push_back(spec);
    return;
  }
  buffer->reserve(filters.size() * 2);
  for (size_t i = 0; i < filters.size(); ++i) {
    const Filter& filter = filters[i];
    COMDLG_FILTERSPEC spec;
    buffer->push_back(base::UTF8ToWide(filter.first));
    spec.pszName = buffer->back().c_str();
    std::vector<std::string> extensions(filter.second);
    for (size_t j = 0; j < extensions.size(); ++j)
      extensions[j].insert(0, "*.");
    buffer->push_back(base::UTF8ToWide(base::JoinString(extensions, ";")));
    spec.pszSpec = buffer->back().c_str();
    filterspec->push_back(spec);
  }
}
template <typename T>
class FileDialog {