bool isDirWritable() const;
/// \return list other files in the directory having optional extension 'ext'.
FileNameList dirList(std::string const & ext) const;
-
+
/// copy a file
/// \return true when file/directory is writable (write test file)
/// \warning This methods has different semantics when system level
/// the symlink will be destroyed).
/// \return true on success.
bool moveTo(FileName const & target) const;
+ bool link(FileName const & name) const;
/// change mode of pointed file.
/// 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;
+ // sets permission based on the file given as an argument
+ bool clonePermissions(FileName const & source);
/// remove pointed directory and all contents.
/// \return true on success.
void changeExtension(std::string const & extension);
static FileName fromFilesystemEncoding(std::string const & name);
- /// 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()'.
- /// CAUTION: This method may create race conditions.
- /// Do not use, use the TempFile class instead.
- static FileName tempName(std::string const & mask);
- static FileName tempName(FileName const & temp_dir,
- std::string const & mask);
/// get the current working directory
static FileName getcwd();
/// change to a directory, return success
bool chdir() const;
-
+
/// \param buffer_path if empty, uses `pwd`
docstring const relPath(std::string const & path) const;
-
+
docstring const absoluteFilePath() const;
private:
friend bool equivalent(FileName const &, FileName const &);
/// Set for tracking of already visited file names.
/// Uses operator==() (which may be case insensitive), and not
- /// equvalent(), so that symlinks are not resolved.
+ /// equivalent(), so that symlinks are not resolved.
typedef std::set<FileName> FileNameSet;
/// Helper for public copyTo() to find circular symlink chains
bool copyTo(FileName const &, bool, FileNameSet &) const;
std::string relFileName(std::string const & buffer_path = empty_string()) const;
/// \param buf_path if empty, uses `pwd`
std::string outputFileName(std::string const & buf_path = empty_string()) const;
-
+
/** @returns a mangled representation of the absolute file name
* suitable for use in the temp dir when, for example, converting
* an image file to another format.
};
-/// \return true if these have the same absolute path name AND
+/// \return true if these have the same absolute path name AND
/// if save_abs_path_ has the same value in both cases.
bool operator==(DocFileName const &, DocFileName const &);
///