virtual void erase();
/// Is this filename empty?
bool empty() const;
+ /// Is the filename absolute?
+ bool isAbsolute() const;
+
/// get the absolute file name in UTF-8 encoding
std::string absFilename() const;
/**
/// copy a file
/// \return true when file/directory is writable (write test file)
- /// \param overwrite: set to true if we should erase the \c target
- /// file if it exists,
- bool copyTo(FileName const & target, bool overwrite = false) const;
+ /// \warning This methods has different semantics when system level
+ /// copy command, it will overwrite the \c target file if it exists,
+ bool copyTo(FileName const & target) const;
/// remove pointed file.
- /// \retrun true on success.
+ /// \return true on success.
bool removeFile() const;
/// rename pointed file.
- /// \retrun true on success.
+ /// \return false if the operation fails or if the \param target file
+ /// already exists.
+ /// \return true on success.
bool renameTo(FileName const & target) const;
+ /// move pointed file to \param target.
+ /// \return true on success.
+ bool moveTo(FileName const & target) const;
+
/// change mode of pointed file.
- /// \retrun true on success.
+ /// This methods does nothing and return true on platforms that does not
+ /// support this.
+ /// \return true on success.
bool changePermission(unsigned long int mode) const;
- /// remove directory and all contents, returns true on success
+ /// remove pointed directory and all contents.
+ /// \return true on success.
bool destroyDirectory() const;
- /// Creates directory. Returns true on success
+ /// Creates pointed directory.
+ /// \return true on success.
bool createDirectory(int permissions) const;
+ /// Creates pointed path.
+ /// \return true on success.
+ bool createPath() const;
/// Get the contents of a file as a huge docstring.
/// \param encoding defines the encoding of the file contents.
bool isZippedFile() const;
static FileName fromFilesystemEncoding(std::string const & name);
- /// (securely) create a temporary file in the given dir with the given mask
- /// \p mask must be in filesystem encoding
- static FileName tempName(FileName const & dir = FileName(),
- std::string const & mask = empty_string());
+ /// (securely) create a temporary file with the given mask.
+ /// \p mask must be in filesystem encoding, if it contains a
+ /// relative path, the template file will be created in the global
+ /// temporary directory as given by 'package().temp_dir()'.
+ static FileName tempName(std::string const & mask = empty_string());
+
+ /// get the current working directory
+ static FileName getcwd();
/// filename without path
std::string onlyFileName() const;