1

2つの異なるパスが実際に同じファイルを参照しているかどうかを判断するための移植可能な方法があるかどうか疑問に思いました。

私はこのスレッドを読みましたが、Windows固有です。

AFAIK、fstreamはその仕事には適していません。

4

1 に答える 1

3

ファイルシステムライブラリ

<filesystem>C ++ 17以降、標準ライブラリを使用できます。あなたが探している関数はequivalent、名前空間の下にありますstd::filesystem

bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2 );

ドキュメントから要約すると、この関数は2つのパスをパラメーターとして受け取りtrue、同じファイルまたはディレクトリを参照している場合は戻ります。それ以外の場合は戻りますfalsenoexcept3番目のパラメーターをとるオーバーロードもありstd::error_codeます。これは、発生する可能性のあるエラーを保存するためのものです。

詳細については、あなたが言及したスレッドの私の答えを見てください。

于 2018-08-27T17:26:56.463 に答える