X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Futils.h;h=a6d956869bf633d531d35e24636b8b37519e35f4;hp=b166fede96a8e888f4ea070cce87ede620dfe466;hb=a17d6ad286e19e2222ab8b6c9a762a83bf2c6c56;hpb=59db379f143f9accda21b831e0243d02f27c1c70 diff --git a/source/utils.h b/source/utils.h index b166fed..a6d9568 100644 --- a/source/utils.h +++ b/source/utils.h @@ -1,85 +1,49 @@ /* $Id$ -This file is part of libmsppath -Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions +This file is part of libmspfs +Copyright © 2006-2008 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ -#ifndef MSP_PATH_UTILS_H_ -#define MSP_PATH_UTILS_H_ - -#include -#include -#include +#ifndef MSP_FS_UTILS_H_ +#define MSP_FS_UTILS_H_ namespace Msp { +namespace FS { class Path; -struct Filename -{ - std::string base; - std::string ext; -}; - -Path fix_case(const Path &path); - -/// Creates a directory -void mkdir(const Path &path, int mode); +/// Extracts the last component of the path. +std::string basename(const Path &); -/// Creates a directory and any required parent directories -void mkpath(const Path &path, int mode); - -/// Removes a directory -void rmdir(const Path &path); - -/// Removes a directory and anything it contains -void rmdirs(const Path &path); - -/// Removes a file -void unlink(const Path &path); - -/// Lists the contents of a directory -std::list list_files(const Path &path); - -Filename splitext(const std::string &); -int fnmatch(const std::string &, const Path &); - -/// Makes a path relative to some base path. That is, base/result==path. -Path relative(const Path &path, const Path &base); - -std::string basename(const std::string &); - -/// Tests for existence of a file -bool exists(const Path &path); - -/// Tests whether a path refers to an existing directory -bool is_dir(const Path &paht); +/// Removes the last component from the path. +Path dirname(const Path &); /** -Gets information about a file. Returns 0 on success or -1 on error. This -version can be used to check for file existence and get information in one -call. +Returns the base part of a filename. This includes everything up to the last +dot, but not the dot itself. */ -int stat(const Path &fn, struct stat &st); +std::string basepart(const std::string &); /** -Returns information about a file. This version throws an exception if an error -occurs. +Returns the extension part of a filename. This includes the last dot and +everything after it. */ -struct stat stat(const Path &fn); - -Path getcwd(); +std::string extpart(const std::string &); -/// Returns the user's home directory -Path get_home_dir(); +/** +Fixes the case of the given path to match files / directories on the +filesystem. +*/ +Path fix_case(const Path &path); -/// Changes the current working directory -void chdir(const Path &); +/// Removes a file +void unlink(const Path &path); -inline bool is_windows_drive(const std::string &p) -{ return (p.size()==2 && ((p[0]>='A' && p[0]<='Z') || (p[0]>='a' && p[0]<='z')) && p[1]==':'); } +/// Makes a path relative to some base path. That is, base/result==path. +Path relative(const Path &path, const Path &base); +} // namespace FS } // namespace Msp #endif