truly empty? in filesystem_ext

This commit is contained in:
qPCR4vir 2016-02-26 16:47:53 +01:00
parent ff279652bc
commit d335f34a6c
2 changed files with 15 additions and 11 deletions

View File

@ -112,7 +112,7 @@ namespace nana { namespace experimental { namespace filesystem
public:
#if defined(NANA_WINDOWS)
using value_type = wchar_t;
const static value_type preferred_separator = '\\'; //? L'\\' ?
const static value_type preferred_separator = L'\\'; //? L'\\' ?
#else
using value_type = char;
const static value_type preferred_separator = '/';
@ -151,10 +151,10 @@ namespace nana { namespace experimental { namespace filesystem
//bool has_root_directory() const;
//bool has_root_path() const;
//bool has_relative_path() const;
bool has_parent_path() const { return !parent_path().empty(); }; // temp;;
bool has_filename() const { return !filename().empty(); }; // temp;
bool has_parent_path() const { return !parent_path().string().empty(); }; // temp;;
bool has_filename() const { return !filename().string().empty(); }; // temp;
//bool has_stem() const;
bool has_extension() const { return !extension().empty(); }; // temp
bool has_extension() const { return !extension().string().empty(); }; // temp
//bool is_absolute() const;
//bool is_relative() const;

View File

@ -110,6 +110,7 @@ namespace nana { namespace experimental { namespace filesystem
return pathstr_.compare(p.pathstr_);
}
/// true if the path is empty, false otherwise. ??
bool path::empty() const noexcept
{
#if defined(NANA_WINDOWS)
@ -122,16 +123,19 @@ namespace nana { namespace experimental { namespace filesystem
path path::extension() const
{
// todo: make more globlal
#if defined(NANA_WINDOWS)
auto pos = pathstr_.find_last_of(L"\\/.");
auto SLorP=L"\\/.";
auto P=L'.';
#else
auto pos = pathstr_.find_last_of("\\/.");
auto SLorP="\\/.";
auto P='.';
#endif
if ((pos == pathstr_.npos) || (pathstr_[pos] != '.'))
return path();
auto pos = pathstr_.find_last_of(SLorP);
if (pos + 1 == pathstr_.size())
if ( ( pos == pathstr_.npos)
|| ( pathstr_[pos] != P )
|| ( pos + 1 == pathstr_.size() ))
return path();
return path(pathstr_.substr(pos));