"C:\ foo \。\ bar \ .."のようなパスがある場合は、Win32 APIを使用してディレクトリ修飾子を削除して "C:\ foo"に簡略化する簡単な方法はありますか?Win32 APIを使用してパス名を簡略化するために、ディレクトリ修飾子を削除するにはどうすればよいですか?
更新:これはもっと複雑な問題です。この単純な "C:\ foo \。\ bar \ .."の例では、PathCanonicalize()とGetFullPathName()の両方で動作し、結果として "C:\ foo"を取得します。
しかし、私が通過しているパスにはシンボリックリンクがあります。 C:\ NaNa \ Boo \ Bin \ .. "と" C:\ NaNa "が" D:\ Apple "へのリンクであるとしましょう。私は "C:\ NaNa \ Boo \ Bin \ .."を取得します。 "C:\ NaNa \ Boo"よりも背後の格付けがあります
私は関数が文字列だけで動作すると仮定しますが、 !私が渡され、これが正常に動作機能を維持した文字列内の改行文字(0x0Dが)を持っていた表示されます
私はGetFullPathName()を投稿した人にお詫び申し上げます。私がコメントしたときの答えはうまくいかなかった(彼らは彼らの反応を引き出した)。実際には正しくフォーマットされた文字列で動作します。少なくとも私はdownvotingよりむしろコメントしましたが、私はまだ謝罪が正当だと感じます。 – Adisak