Windows 7/NTFS 以降には、シンボリック リンクとジャンクションの両方があり、微妙に異なります。(この優れた一連の投稿を参照してください)。ロギング (およびデバッグ) の目的で、リモート ファイル サーバー上のジャンクションのターゲットを解決できる必要があります。このトピックに関するいくつかの投稿がありましたが、それらはローカル マシンから見たジャンクションの解決に適用されます。
では、として共有されて\\FileServerいるディレクトリがあるため、ネットワーク上では として表示されます。そのディレクトリ内には、サブディレクトリと. また、そのディレクトリ内には、またはを指すジャンクションがあります。(ターゲットは変更される可能性があります。) したがって、 では、次のことがわかります。G:\SharedPublicShare\\FileServer\PublicShareG:\Shared\SubDir1G:\Shared\SubDir2G:\Shared\JuncG:\Shared\SubDir1G:\Shared\SubDir2\\FileServer
\\FileServer\PublicShare\SubDir1
\\FileServer\PublicShare\SubDir2
\\FileServer\PublicShare\Junc
\\FileServer\PublicShareがマウントされている (Windows 用語でマッピングされている) クライアント マシンでは、 、、M:\が表示されます。そのクライアント マシンで、コンソール ( ) を開いて を実行すると、Windows は、 がジャンクションであり、ジャンクションのターゲット が含まれていることを示す適切なリストを表示します。M:\SubDir1M:\SubDir2M:\Junccmd.exedir M:\M:\JuncG:\Shared\SubDirX
M:\>dir
Volume in drive M is XXXXXXXXX
Volume Serial Number is XXXX-XXXX
Directory of M:\
09/05/2014 07:30 PM <DIR> .
09/05/2014 07:30 PM <DIR> ..
09/05/2014 01:36 PM <JUNCTION> Junc [G:\Shared\SubDir1]
09/06/2014 12:55 PM <DIR> SubDir1
09/05/2014 05:15 PM <DIR> SubDir2
0 File(s) 0 bytes
3 Dir(s) 1,895,493,492,736 bytes free
M:\>
したがって、このようなジャンクションのターゲットは、クライアントが明確に利用できます。 この情報をプログラムで取得する方法を知っている人はいますか?たとえば、どのシステム API を呼び出すか? ありがとう。