teleport/common/libex/include/ex/ex_path.h

46 lines
1.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef __LIB_EX_PATH_H__
#define __LIB_EX_PATH_H__
#include <ex/ex_platform.h>
#include <ex/ex_types.h>
#include <ex/ex_str.h>
// fix `in_path` for current platform.
// must use ex_free() to release returned value.
// e.g.: "/usr//local/../test.txt" => "/usr/local/../test.txt"
// e.g.: "C:/abc/def\\..\\test.txt" => "C:\\abc\\def\\..\\test.txt"
wchar_t* ex_fix_path(const wchar_t* in_path);
wchar_t* ex_exec_file(void); // must use ex_free() to release returned value.
EX_BOOL ex_is_abspath(const wchar_t* in_path);
wchar_t* ex_abspath(const wchar_t* in_path); // must use ex_free() to release returned value.
wchar_t* ex_dirname(const wchar_t* in_filename); // must use ex_free() to release returned value.
EX_BOOL ex_is_dir_exists(const wchar_t* in_path);
EX_BOOL ex_is_file_exists(const wchar_t* in_file);
// join a path, last param must be NULL.
// must use ex_free() to release returned value.
wchar_t* ex_path_join(const wchar_t* in_path, EX_BOOL auto_abspath, ...);
// calc an abs-path, `relate_path` relate to `base_abs_path`.
// must use ex_free() to release returned value.
// e.g.: ("/usr/local/abc", "../../etc/abc.ini") => "/usr/etc/abc.ini"
wchar_t* ex_abspath_to(const wchar_t* base_abs_path, const wchar_t* relate_path);
#ifdef __cplusplus
bool ex_exec_file(ex_wstr& out_filename);
bool ex_abspath(ex_wstr& inout_path);
bool ex_dirname(ex_wstr& inout_filename);
bool ex_path_join(ex_wstr& inout_path, bool auto_abspath, ...);
bool ex_abspath_to(const ex_wstr& base_abs_path, const ex_wstr& relate_path, ex_wstr& out_path);
bool ex_mkdirs(const ex_wstr& in_path);
// 获取文件名中的扩展名部分(不包括.例如abc.py返回 py
bool ex_path_ext_name(const ex_wstr& in_filename, ex_wstr& out_ext);
#endif
#endif // __LIB_EX_PATH_H__