mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	added new files
This commit is contained in:
		
							
								
								
									
										56
									
								
								lib/filesystem/FileInfo.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								lib/filesystem/FileInfo.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| #include "StdInc.h" | ||||
|  | ||||
| #include "FileInfo.h" | ||||
|  | ||||
| namespace FileInfo | ||||
| { | ||||
|  | ||||
| boost::string_ref GetFilename(boost::string_ref path) | ||||
| { | ||||
| 	const auto pos = path.find_last_of("/\\"); | ||||
|  | ||||
| 	if (pos != boost::string_ref::npos) | ||||
| 		return path.substr(pos + 1); | ||||
|  | ||||
| 	return path; | ||||
| } | ||||
|  | ||||
| boost::string_ref GetExtension(boost::string_ref path) | ||||
| { | ||||
| 	const auto dotPos = path.find_last_of('.'); | ||||
|  | ||||
| 	if(dotPos != boost::string_ref::npos) | ||||
| 		return path.substr(dotPos); | ||||
|  | ||||
| 	return boost::string_ref{}; | ||||
| } | ||||
|  | ||||
| boost::string_ref GetStem(boost::string_ref path) | ||||
| { | ||||
| 	auto begin	= path.find_last_of("/\\"); | ||||
| 	auto end	= path.find_last_of('.'); | ||||
|  | ||||
| 	if (begin == boost::string_ref::npos) | ||||
| 		begin = 0; | ||||
| 	else | ||||
| 		begin += 1; | ||||
|  | ||||
| 	if (end < begin) | ||||
| 		end = boost::string_ref::npos; | ||||
|  | ||||
| 	return path.substr(begin, end); | ||||
| } | ||||
|  | ||||
| boost::string_ref GetParentPath(boost::string_ref path) | ||||
| { | ||||
| 	const auto pos = path.find_last_of("/\\"); | ||||
| 	return path.substr(0, pos); | ||||
| } | ||||
|  | ||||
| boost::string_ref GetPathStem(boost::string_ref path) | ||||
| { | ||||
| 	const auto dotPos = path.find_last_of('.'); | ||||
| 	return path.substr(0, dotPos); | ||||
| } | ||||
|  | ||||
| } // namespace FileInfo | ||||
							
								
								
									
										53
									
								
								lib/filesystem/FileInfo.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								lib/filesystem/FileInfo.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| #pragma once | ||||
|  | ||||
| /* | ||||
|  * FileInfo.h, part of VCMI engine | ||||
|  * | ||||
|  * Authors: listed in file AUTHORS in main folder | ||||
|  * | ||||
|  * License: GNU General Public License v2.0 or later | ||||
|  * Full text of license available in license.txt file, in main folder | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #include <boost/utility/string_ref.hpp> | ||||
|  | ||||
| namespace FileInfo | ||||
| { | ||||
|  | ||||
| /** | ||||
|  * Returns the name of the file. | ||||
|  * | ||||
|  * @return the name of the file. E.g. foo.txt | ||||
|  */ | ||||
| boost::string_ref DLL_LINKAGE GetFilename(boost::string_ref path); | ||||
|  | ||||
| /** | ||||
|  * Gets the file extension. | ||||
|  * | ||||
|  * @return the file extension. E.g. .ext | ||||
|  */ | ||||
| boost::string_ref DLL_LINKAGE GetExtension(boost::string_ref path); | ||||
|  | ||||
| /** | ||||
|  * Gets the file name exclusive the extension of the file. | ||||
|  * | ||||
|  * @return the file name exclusive the extension and the path of the file. E.g. foo | ||||
|  */ | ||||
| boost::string_ref DLL_LINKAGE GetStem(boost::string_ref path); | ||||
|  | ||||
| /** | ||||
|  * Gets the path to the file only. | ||||
|  * | ||||
|  * @return the path to the file only. E.g. ./dir/ | ||||
|  */ | ||||
| boost::string_ref DLL_LINKAGE GetParentPath(boost::string_ref path); | ||||
|  | ||||
| /** | ||||
|  * Gets the file name + path exclusive the extension of the file. | ||||
|  * | ||||
|  * @return the file name exclusive the extension of the file. E.g. ./dir/foo | ||||
|  */ | ||||
| boost::string_ref DLL_LINKAGE GetPathStem(boost::string_ref path); | ||||
|  | ||||
| } // namespace FileInfo | ||||
		Reference in New Issue
	
	Block a user