13#include "acme/constant/path.h"
19CLASS_DECL_ACME ::string file_path_name(const ::scoped_string & path);
20CLASS_DECL_ACME ::string file_path_final_extension(const ::scoped_string & path);
21CLASS_DECL_ACME ::string file_path_all_extensions(const ::scoped_string & path);
22CLASS_DECL_ACME ::string file_path_folder(const ::scoped_string & scopedstrPath);
23CLASS_DECL_ACME ::string file_path_title(const ::scoped_string & scopedstrPath);
25CLASS_DECL_ACME
bool file_path_is_relative(const ::scoped_string & scopedstr);
26CLASS_DECL_ACME
bool file_path_is_absolute(const ::scoped_string & scopedstr);
29CLASS_DECL_ACME
bool file_path_is_dots(const ::scoped_string & scopedstr);
31CLASS_DECL_ACME
bool file_path_is_equal(const ::file::path & path1, const ::file::path & path2);
33CLASS_DECL_ACME
string url_dir_name_for_relative(const ::file::path & path);
35CLASS_DECL_ACME
bool solve_relative_inplace(
string & str,
bool & bUrl,
bool & bOnlyNativeFileSep, strsize_array & iaSlash);
36CLASS_DECL_ACME
string solve_relative(const ::scoped_string & scopedstrParam,
bool * pbUrl =
nullptr);
37CLASS_DECL_ACME
string defer_solve_relative(const ::scoped_string & scopedstrRelative, const ::scoped_string & scopedstrAbsolute);
39inline ::i8 file_path_separator(enum_path epath);
41inline const_char_pointer file_path_separator_sz(enum_path epath);
43inline ::i8 file_path_other_separator(enum_path epath);
45CLASS_DECL_ACME enum_path file_path_get_type(const ::scoped_string & scopedstr, enum_path epathForce = e_path_none);
47CLASS_DECL_ACME
string file_path_normalize(const ::scoped_string & scopedstrPath, enum_path epath = e_path_none);
49CLASS_DECL_ACME
bool file_path_normalize_inline(
string & strPath, enum_path & epath);
59inline ::i8 file_path_separator(enum_path epath)
64 return epath == e_path_file ?
'\\' :
'/';
75inline const_char_pointer file_path_separator_sz(enum_path epath)
80 return epath == e_path_file ?
"\\" :
"/";
90inline ::i8 file_path_other_separator(enum_path epath)
95 return epath == e_path_file ?
'/' :
'\\';