23 BasicFileInfo::BasicFileInfo(
const std::string &path) :
28 m_file.exceptions(ios_base::failbit | ios_base::badbit);
62 m_file.open(m_path, (m_readOnly = readOnly) ? ios_base::in | ios_base::binary : ios_base::in | ios_base::out | ios_base::binary);
63 m_file.seekg(0, ios_base::end);
64 m_size = m_file.tellg();
65 m_file.seekg(0, ios_base::beg);
110 size_t lastSlash = path.rfind(
'/');
111 size_t lastBackSlash = path.rfind(
'\\');
112 size_t lastPoint = cutExtension ? path.rfind(
'.') : string::npos;
113 size_t lastSeparator;
114 if(lastSlash == string::npos && lastBackSlash == string::npos) {
115 return (lastPoint == string::npos) ?
path : path.substr(0, lastPoint);
116 }
else if(lastSlash == string::npos) {
117 lastSeparator = lastBackSlash;
118 }
else if(lastBackSlash == string::npos) {
119 lastSeparator = lastSlash;
121 lastSeparator = lastSlash > lastBackSlash ? lastSlash : lastBackSlash;
123 return (lastPoint != string::npos) ? path.substr(lastSeparator + 1, lastPoint - lastSeparator - 1) : path.substr(lastSeparator + 1);
133 return fileName(m_path, cutExtension);
143 size_t lastPoint = path.rfind(
'.');
144 if(lastPoint == string::npos) {
147 return path.substr(lastPoint);
164 size_t lastPoint = fullPath.rfind(
'.');
165 return lastPoint != string::npos ? fullPath.substr(0, lastPoint) : fullPath;
181 size_t lastSlash = path.rfind(
'/');
182 size_t lastBackSlash = path.rfind(
'\\');
183 size_t lastSeparator;
184 if(lastSlash == string::npos && lastBackSlash == string::npos) {
186 }
else if(lastSlash == string::npos) {
187 lastSeparator = lastBackSlash;
188 }
else if(lastBackSlash == string::npos) {
189 lastSeparator = lastSlash;
191 lastSeparator = lastSlash > lastBackSlash ? lastSlash : lastBackSlash;
193 if(lastSeparator > 0) {
194 return path.substr(0, lastSeparator);