X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ffs%2Fdir.h;h=fa2793a15532f04943a5d827ac8e4647c766e390;hb=99b9121e2158603372c7313400283b622e6754d8;hp=6bd760ced68be0ea6bdd57934d2cce925a32e70d;hpb=cc7c798b275b8ea9992eb82d68177ecfd50e0974;p=libs%2Fcore.git diff --git a/source/fs/dir.h b/source/fs/dir.h index 6bd760c..fa2793a 100644 --- a/source/fs/dir.h +++ b/source/fs/dir.h @@ -1,9 +1,9 @@ #ifndef MSP_FS_DIR_H_ #define MSP_FS_DIR_H_ -#include #include #include +#include #include "path.h" namespace Msp { @@ -13,7 +13,7 @@ class not_a_directory: public std::runtime_error { public: not_a_directory(const Path &); - virtual ~not_a_directory() throw() { } + virtual ~not_a_directory() throw() = default; }; /// Creates a directory @@ -29,39 +29,38 @@ void rmdir(const Path &path); void rmpath(const Path &path); /// Lists the contents of a directory -std::list list_files(const Path &path); +std::vector list_files(const Path &path); /// Lists the contents of a directory, filtered with a regex -std::list list_filtered(const Path &path, const std::string &filter); +std::vector list_filtered(const Path &path, const std::string &filter); /// Returns the current working directory Path getcwd(); +/// Changes the current working directory +void chdir(const Path &); + /// Returns the user's home directory Path get_home_dir(); -/// Returns a directory suitable for storing user-specific data -Path get_user_data_dir(const std::string &appname); - +/// Returns a directory suitable for storing user-specific data. Path get_user_data_dir(); -/// Returns a directory containing system-wide configuration -Path get_sys_conf_dir(const std::string &argv0); - +/// Returns a directory containing system-wide configuration. Path get_sys_conf_dir(); -/// Returns a directory containing immutable system-wide data -Path get_sys_data_dir(const std::string &argv0, const std::string &appname); - +/// Returns a directory containing immutable system-wide data. Path get_sys_data_dir(); -/// Returns a directory containing system-wide architecture-specific files -Path get_sys_lib_dir(const std::string &argv0, const std::string &appname); - +/// Returns a directory containing system-wide architecture-specific files. Path get_sys_lib_dir(); -/// Changes the current working directory -void chdir(const Path &); +/** Looks for a file in a list of paths. Returns the absolute path to the +first existing location, or an empty Path if the file is not found at all. */ +Path path_lookup(const std::string &, const std::vector &); + +/** Looks for a file using the PATH environment variable. */ +Path path_lookup(const std::string &); } // namespace FS } // namespace Msp