2つの異なるパスが実際に同じファイルを参照しているかどうかを判断するための移植可能な方法があるかどうか疑問に思いました。
私はこのスレッドを読みましたが、Windows固有です。
AFAIK、fstreamはその仕事には適していません。
2つの異なるパスが実際に同じファイルを参照しているかどうかを判断するための移植可能な方法があるかどうか疑問に思いました。
私はこのスレッドを読みましたが、Windows固有です。
AFAIK、fstreamはその仕事には適していません。
<filesystem>
C ++ 17以降、標準ライブラリを使用できます。あなたが探している関数はequivalent
、名前空間の下にありますstd::filesystem
:
bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2 );
ドキュメントから要約すると、この関数は2つのパスをパラメーターとして受け取りtrue
、同じファイルまたはディレクトリを参照している場合は戻ります。それ以外の場合は戻りますfalse
。noexcept
3番目のパラメーターをとるオーバーロードもありstd::error_code
ます。これは、発生する可能性のあるエラーを保存するためのものです。