X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Ffs%2Fdir.h;fp=source%2Ffs%2Fdir.h;h=53228ccd760ce233d235fbef7b13b4b965c5c28b;hp=0000000000000000000000000000000000000000;hb=af94bc926e301e9b871dc18662b4fa6e5614fdbf;hpb=fa77438b62207466c48620604c8cc34931080936 diff --git a/source/fs/dir.h b/source/fs/dir.h new file mode 100644 index 0000000..53228cc --- /dev/null +++ b/source/fs/dir.h @@ -0,0 +1,60 @@ +/* $Id$ + +This file is part of libmspfs +Copyright © 2006-2008 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + +#ifndef MSP_FS_DIR_H_ +#define MSP_FS_DIR_H_ + +#include +#include +#include "path.h" + +namespace Msp { +namespace FS { + +/// Creates a directory +void mkdir(const Path &path, int mode); + +/// Creates a directory and any required parent directories +void mkpath(const Path &path, int mode); + +/// Removes a directory, which must be empty +void rmdir(const Path &path); + +/// Removes a directory and anything it contains +void rmpath(const Path &path); + +/// Lists the contents of a directory +std::list 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); + +/// Returns the current working directory +Path getcwd(); + +/// 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 containing system-wide configuration +Path get_sys_conf_dir(const std::string &argv0); + +/// 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 system-wide architecture-specific files +Path get_sys_lib_dir(const std::string &argv0, const std::string &appname); + +/// Changes the current working directory +void chdir(const Path &); + +} // namespace FS +} // namespace Msp + +#endif