diff --git a/source/gui/filebox.cpp b/source/gui/filebox.cpp index 06dfed84..f2417087 100644 --- a/source/gui/filebox.cpp +++ b/source/gui/filebox.cpp @@ -1516,14 +1516,24 @@ namespace nana path_type parent_path{ str }; str += (len + 1); - - while(*str) + + // if only one file was selected, the ofn.lpstrFile + // is returning only that file, without any parent + if (!*str) { - len = ::wcslen(str); - targets.emplace_back(parent_path / path_type{str}); - str += (len + 1); + targets.emplace_back(parent_path); + impl_->path = parent_path.parent_path().u8string(); + } + else + { + while(*str) + { + len = ::wcslen(str); + targets.emplace_back(parent_path / path_type{str}); + str += (len + 1); + } + impl_->path = parent_path.u8string(); } - impl_->path = parent_path.u8string(); } else {