*/
#include <cerrno>
+#include <cstdio>
#include <msp/core/except.h>
#ifndef WIN32
#include <fnmatch.h>
Path dirname(const Path &p)
{
+ if(p.size()==1)
+ {
+ if(p.is_absolute())
+ return p;
+ return ".";
+ }
return p.subpath(0, p.size()-1);
}
string extpart(const string &fn)
{
- unsigned dot=fn.rfind('.');
+ string::size_type dot=fn.rfind('.');
if(dot==string::npos)
return string();
return fn.substr(dot);
Path readlink(const Path &link)
{
#ifdef WIN32
+ (void)link;
throw Exception("No symbolic links on win32");
#else
char buf[4096];
#endif
}
+void rename(const Path &from, const Path &to)
+{
+ if(::rename(from.str().c_str(), to.str().c_str())==-1)
+ throw SystemError("rename failed", errno);
+}
+
void unlink(const Path &path)
{
if(::unlink(path.str().c_str())==-1)