コンテンツにスキップ

FileSystem

  • ファイルやディレクトリに関するユーティリティ関数を実装する。
FileSystem.hpp
#pragma once
#include <string_view> // std::string_view
#include <string> // std::string
#include "Common.hpp"

namespace seccamp
{
	namespace FileSystem
	{
		/// @brief ファイルパスを絶対パスに変換します。
		/// @param path ファイルパス
		/// @return 絶対パス
		[[nodiscard]]
		std::string FullPath(std::string_view path);

		/// @brief ファイルパスから拡張子を取得します。(例: ".txt", ".JPEG")
		/// @param path ファイルパス
		/// @return 拡張子。拡張子が存在しない場合は空文字列
		[[nodiscard]]
		std::string Extension(std::string_view path);
	}
}
FileSystem.cpp
#include <filesystem> // std::filesystem::path, std::filesystem::absolute
#include "FileSystem.hpp"

namespace seccamp
{
	namespace FileSystem
	{
		std::string FullPath(const std::string_view path)
		{
			return std::filesystem::absolute(path).string();
		}

		std::string Extension(const std::string_view path)
		{
			return std::filesystem::path{ path }.extension().string();
		}
	}
}