Doxygen
FileInfo类 参考

Minimal replacement for QFileInfo. 更多...

#include <fileinfo.h>

Public 成员函数

 FileInfo (const std::string &name)
 
bool exists () const
 
size_t size () const
 
bool isWritable () const
 
bool isReadable () const
 
bool isExecutable () const
 
bool isRelative () const
 
bool isFile () const
 
bool isDir () const
 
bool isSymLink () const
 
std::string readLink () const
 
std::string filePath () const
 
std::string absFilePath () const
 
std::string fileName () const
 
std::string baseName () const
 
std::string extension (bool complete) const
 
std::string dirPath (bool absPath=true) const
 

静态 Private 成员函数

static void correctPath (std::string &s)
 

Private 属性

std::string m_name
 

详细描述

Minimal replacement for QFileInfo.

在文件 fileinfo.h22 行定义.

构造及析构函数说明

◆ FileInfo()

FileInfo::FileInfo ( const std::string &  name)
inlineexplicit

在文件 fileinfo.h38 行定义.

成员函数说明

◆ absFilePath()

std::string FileInfo::absFilePath ( ) const

在文件 fileinfo.cpp101 行定义.

102 {
103  std::string result;
104  std::error_code ec;
105  fs::path path(m_name);
106  if (fs::exists(path,ec))
107  {
108  result = fs::canonical(path,ec).string();
109  }
110  else
111  {
112  result = (fs::current_path(ec) / m_name).string();
113  }
114  correctPath(result);
115  return result;
116 }

引用了 correctPath() , 以及 m_name.

被这些函数引用 dirPath(), FormulaManager::generateImages(), getConvertLatexMacro(), markdownFileNameToId(), parseFile(), MarkdownOutlineParser::parseInput(), patternMatch(), Markdown::processLink(), readConfiguration(), readDir(), readFileOrDirectory(), readTagFile(), resolveLink(), substituteLatexKeywords() , 以及 ClassDefImpl::writeIncludeFilesForSlice().

◆ baseName()

std::string FileInfo::baseName ( ) const

在文件 fileinfo.cpp123 行定义.

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

引用了 fileName().

◆ correctPath()

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

在文件 fileinfo.cpp96 行定义.

97 {
98  std::replace( s.begin(), s.end(), '\\', '/' );
99 }

引用了 reg::replace().

被这些函数引用 absFilePath() , 以及 dirPath().

◆ dirPath()

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

在文件 fileinfo.cpp137 行定义.

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 }

引用了 absFilePath(), correctPath() , 以及 m_name.

被这些函数引用 readDir(), readFileOrDirectory(), HtmlDocVisitor::visit(), DocbookDocVisitor::visit(), LatexDocVisitor::visit(), RTFDocVisitor::visit(), ManDocVisitor::visit() , 以及 XmlDocVisitor::visit().

◆ exists()

◆ extension()

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

在文件 fileinfo.cpp130 行定义.

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 }

引用了 fileName().

被这些函数引用 getLanguageFromFileName().

◆ fileName()

◆ filePath()

std::string FileInfo::filePath ( ) const

在文件 fileinfo.cpp91 行定义.

92 {
93  return m_name;
94 }

引用了 m_name.

被这些函数引用 patternMatch().

◆ isDir()

bool FileInfo::isDir ( ) const

在文件 fileinfo.cpp70 行定义.

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

引用了 m_name.

被这些函数引用 Dir::exists(), readDir(), readFileOrDirectory() , 以及 resolveSymlink().

◆ isExecutable()

bool FileInfo::isExecutable ( ) const

在文件 fileinfo.cpp51 行定义.

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 }

引用了 m_name.

◆ isFile()

bool FileInfo::isFile ( ) const

在文件 fileinfo.cpp63 行定义.

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

引用了 m_name.

被这些函数引用 fileToString(), readDir(), readFileOrDirectory(), readTagFile() , 以及 HtmlGenerator::writeStyleInfo().

◆ isReadable()

bool FileInfo::isReadable ( ) const

在文件 fileinfo.cpp44 行定义.

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 }

引用了 m_name.

被这些函数引用 Htags::loadFilemap(), Markdown::processLink(), readDir(), readFileOrDirectory() , 以及 HtmlGenerator::writeStyleInfo().

◆ isRelative()

bool FileInfo::isRelative ( ) const

在文件 fileinfo.cpp58 行定义.

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

引用了 m_name.

被这些函数引用 resolveSymlink().

◆ isSymLink()

bool FileInfo::isSymLink ( ) const

在文件 fileinfo.cpp77 行定义.

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

引用了 m_name.

被这些函数引用 DocParser::findAndCopyImage(), readDir(), readFileOrDirectory() , 以及 resolveSymlink().

◆ isWritable()

bool FileInfo::isWritable ( ) const

在文件 fileinfo.cpp37 行定义.

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 }

引用了 m_name.

◆ readLink()

std::string FileInfo::readLink ( ) const

在文件 fileinfo.cpp84 行定义.

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 }

引用了 m_name.

被这些函数引用 resolveSymlink().

◆ size()

size_t FileInfo::size ( ) const

在文件 fileinfo.cpp23 行定义.

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 }

引用了 m_name.

被这些函数引用 deliverablesPresent(), fileToString(), insertMapFile(), TemplateEngine::Private::loadByName(), parseFile() , 以及 readInputFile().

类成员变量说明

◆ m_name

std::string FileInfo::m_name
private

该类的文档由以下文件生成:
FileInfo::m_name
std::string m_name
Definition: fileinfo.h:57
reg::replace
std::string replace(const std::string &str, const Ex &re, const std::string &replacement)
Searching in a given input string for parts that match regular expression re and replaces those parts...
Definition: regex.cpp:740
FileInfo::correctPath
static void correctPath(std::string &s)
Definition: fileinfo.cpp:96
FileInfo::absFilePath
std::string absFilePath() const
Definition: fileinfo.cpp:101
FileInfo::fileName
std::string fileName() const
Definition: fileinfo.cpp:118