Skip to main content

The FileInfo Class Reference

Minimal replacement for QFileInfo. More...

Declaration

class FileInfo { ... }

Included Headers

#include <src/fileinfo.h>

Public Constructors Index

FileInfo (const std::string &name)

Public Member Functions Index

boolexists () const
size_tsize () const
boolisWritable () const
boolisReadable () const
boolisExecutable () const
boolisRelative () const
boolisFile () const
boolisDir () const
boolisSymLink () const
std::stringreadLink () const
std::stringfilePath () const
std::stringabsFilePath () const
std::stringfileName () const
std::stringbaseName () const
std::stringextension (bool complete) const
std::stringdirPath (bool absPath=true) const

Private Member Attributes Index

std::stringm_name

Private Static Functions Index

static voidcorrectPath (std::string &s)

Description

Minimal replacement for QFileInfo.

Definition at line 22 of file fileinfo.h.

Public Constructors

FileInfo()

FileInfo::FileInfo (const std::string & name)
inline explicit

Definition at line 25 of file fileinfo.h.

25 explicit FileInfo(const std::string &name) : m_name(name) {}

Reference m_name.

Public Member Functions

absFilePath()

std::string FileInfo::absFilePath ()

Declaration at line 37 of file fileinfo.h, definition at line 101 of file fileinfo.cpp.

101std::string FileInfo::absFilePath() const
102{
103 std::string result;
104 std::error_code ec;
105 fs::path path(m_name);
106 if (!path.is_relative())
107 {
108 result = path.lexically_normal().string();
109 }
110 else
111 {
112 result = (fs::current_path(ec) / m_name).lexically_normal().string();
113 }
114 correctPath(result);
115 return result;
116}

References correctPath and m_name.

Referenced by Preprocessor::addSearchDir, checkAndOpenFile, checkMarkdownMainfile, cleanUpPaths, determineAbsoluteIncludeName, dirPath, findFilePath, FormulaManager::generateImages, genericPatternMatch, getConvertLatexMacro, markdownFileNameToId, openDbConnection, parseFile, MarkdownOutlineParser::parseInput, preProcessFile, RTFGenerator::preProcessFileInplace, Markdown::Private::processLink, readConfiguration, readDir, readFileOrDirectory, readTagFile, resolveLink, setFileName, substituteLatexKeywords and ClassDefImpl::writeIncludeFilesForSlice.

baseName()

std::string FileInfo::baseName ()

Declaration at line 39 of file fileinfo.h, definition at line 123 of file fileinfo.cpp.

123std::string FileInfo::baseName() const
124{
125 std::string s = fileName();
126 size_t pos = s.find('.');
127 return pos!=std::string::npos ? s.substr(0,pos) : s;
128}

Reference fileName.

Referenced by parseMain.

dirPath()

std::string FileInfo::dirPath (bool absPath=true)

Declaration at line 41 of file fileinfo.h, definition at line 137 of file fileinfo.cpp.

137std::string FileInfo::dirPath(bool absPath) const
138{
139 std::string result;
140 if (absPath)
141 {
142 result = absFilePath();
143 }
144 else
145 {
146 result = m_name;
147 correctPath(result);
148 }
149 size_t pos = result.rfind('/');
150 if (pos==std::string::npos)
151 {
152 return ".";
153 }
154 else if (pos==0)
155 {
156 return "/";
157 }
158 else
159 {
160 return result.substr(0,pos);
161 }
162}

References absFilePath, correctPath and m_name.

Referenced by Config::checkAndCorrect, determineAbsoluteIncludeName, findFile, findPackageScope, initWarningFormat, DocbookDocVisitor::operator(), DocbookDocVisitor::operator(), HtmlDocVisitor::operator(), HtmlDocVisitor::operator(), LatexDocVisitor::operator(), LatexDocVisitor::operator(), ManDocVisitor::operator(), ManDocVisitor::operator(), RTFDocVisitor::operator(), RTFDocVisitor::operator(), XmlDocVisitor::operator(), XmlDocVisitor::operator(), CodeFragmentManager::parseCodeFragment, readDir and readFileOrDirectory.

exists()

extension()

std::string FileInfo::extension (bool complete)

Declaration at line 40 of file fileinfo.h, definition at line 130 of file fileinfo.cpp.

130std::string FileInfo::extension(bool complete) const
131{
132 std::string fn = fileName();
133 size_t pos = complete ? fn.find('.') : fn.rfind('.');
134 return pos!=std::string::npos ? fn.substr(pos+1) : std::string();
135}

Reference fileName.

Referenced by getLanguageFromFileName and DefinitionImpl::Private::setDefFileName.

fileName()

filePath()

std::string FileInfo::filePath ()

Declaration at line 36 of file fileinfo.h, definition at line 91 of file fileinfo.cpp.

91std::string FileInfo::filePath() const
92{
93 return m_name;
94}

Reference m_name.

Referenced by genericPatternMatch and openOutputFile.

isDir()

bool FileInfo::isDir ()

Declaration at line 33 of file fileinfo.h, definition at line 70 of file fileinfo.cpp.

70bool FileInfo::isDir() const
71{
72 std::error_code ec;
73 fs::file_status status = fs::status(m_name,ec);
74 return !ec && fs::is_directory(std::move(status));
75}

Reference m_name.

Referenced by Preprocessor::addSearchDir, Config::checkAndCorrect, cleanUpPaths, copyExtraFiles, copyIcon, copyLatexStyleSheet, copyLogo, copyStyleSheet, determineAbsoluteIncludeName, Dir::exists, readDir, readFileOrDirectory and resolveSymlink.

isExecutable()

bool FileInfo::isExecutable ()

Declaration at line 30 of file fileinfo.h, definition at line 51 of file fileinfo.cpp.

52{
53 std::error_code ec;
54 fs::file_status status = fs::status(m_name,ec);
55 return !ec && (status.permissions() & fs::perms::owner_exec)!=fs::perms::none;
56}

Reference m_name.

isFile()

bool FileInfo::isFile ()

Declaration at line 32 of file fileinfo.h, definition at line 63 of file fileinfo.cpp.

63bool FileInfo::isFile() const
64{
65 std::error_code ec;
66 fs::file_status status = fs::status(m_name,ec);
67 return !ec && fs::is_regular_file(std::move(status));
68}

Reference m_name.

Referenced by Config::checkAndCorrect, checkAndOpenFile, computeVerifiedDotPath, fileToString, parseInput, readDir, readFileOrDirectory, readIncludeFile, readTagFile, runPlantumlContent, tryPath and HtmlGenerator::writeStyleInfo.

isReadable()

bool FileInfo::isReadable ()

Declaration at line 29 of file fileinfo.h, definition at line 44 of file fileinfo.cpp.

45{
46 std::error_code ec;
47 fs::file_status status = fs::status(m_name,ec);
48 return !ec && (status.permissions() & fs::perms::owner_read)!=fs::perms::none;
49}

Reference m_name.

Referenced by Htags::loadFilemap, Markdown::Private::processLink, readDir, readFileOrDirectory and HtmlGenerator::writeStyleInfo.

isRelative()

bool FileInfo::isRelative ()

Declaration at line 31 of file fileinfo.h, definition at line 58 of file fileinfo.cpp.

59{
60 return fs::path(m_name).is_relative();
61}

Reference m_name.

Referenced by resolveSymlink.

isSymLink()

bool FileInfo::isSymLink ()

Declaration at line 34 of file fileinfo.h, definition at line 77 of file fileinfo.cpp.

78{
79 std::error_code ec;
80 fs::file_status status = fs::symlink_status(m_name,ec);
81 return !ec && fs::is_symlink(std::move(status));
82}

Reference m_name.

Referenced by DocParser::findAndCopyImage, readDir, readFileOrDirectory and resolveSymlink.

isWritable()

bool FileInfo::isWritable ()

Declaration at line 28 of file fileinfo.h, definition at line 37 of file fileinfo.cpp.

38{
39 std::error_code ec;
40 fs::file_status status = fs::status(m_name,ec);
41 return !ec && (status.permissions() & fs::perms::owner_write)!=fs::perms::none;
42}

Reference m_name.

readLink()

std::string FileInfo::readLink ()

Declaration at line 35 of file fileinfo.h, definition at line 84 of file fileinfo.cpp.

84std::string FileInfo::readLink() const
85{
86 std::error_code ec;
87 fs::path targetPath = fs::read_symlink(fs::path(m_name));
88 return !ec ? targetPath.string() : std::string();
89}

Reference m_name.

Referenced by resolveSymlink.

size()

size_t FileInfo::size ()

Declaration at line 27 of file fileinfo.h, definition at line 23 of file fileinfo.cpp.

23size_t FileInfo::size() const
24{
25 std::error_code ec;
26 size_t result = static_cast<size_t>(fs::file_size(fs::path(m_name),ec));
27 return ec ? 0 : result;
28}

Reference m_name.

Referenced by deliverablesPresent, insertMapFile and readInputFile.

Private Member Attributes

m_name

std::string FileInfo::m_name

Definition at line 44 of file fileinfo.h.

44 std::string m_name;

Referenced by absFilePath, dirPath, exists, FileInfo, fileName, filePath, isDir, isExecutable, isFile, isReadable, isRelative, isSymLink, isWritable, readLink and size.

Private Static Functions

correctPath()

void FileInfo::correctPath (std::string & s)
static

Declaration at line 43 of file fileinfo.h, definition at line 96 of file fileinfo.cpp.

96void FileInfo::correctPath(std::string &s)
97{
98 std::replace( s.begin(), s.end(), '\\', '/' );
99}

Referenced by absFilePath and dirPath.


The documentation for this class was generated from the following files:


Generated via doxygen2docusaurus by Doxygen 1.14.0.