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