2011-10-20 9 views

答えて

0

チェック に尋ねられたときGetFileAttributesとFindFirstFileなどのhttp://blogs.msdn.com/b/oldnewthing/archive/2010/02/12/9962359.aspx

機能は、シンボリックリンクの情報を提供し、このリンクは、リンク自体ではなくリンク先 に関する情報を返します。あなたは FindFirstFile関数を使用する場合は、ファイル属性が FILE_ATTRIBUTES_REPARSE_POINTフラグがセットされていますので、あなたがシンボリックリンク を持っていることを伝えることができ、かつdwReserved0メンバー は特別な値IO_REPARSE_TAG_SYMLINKが含まれています。

私はシンボリックリンクを持っていますが、リンクターゲットについての情報が必要な場合はどうすればよいですか?

たとえば、リンクターゲットのサイズ、最終変更時刻、および名前を知りたいとします。 にするには、シンボリックリンクを開きます。 I/Oマネージャは、 シンボリックリンクを参照解除し、リンク先へのハンドルを提供します。 GetFileSize、GetFileInformationByHandleEx、または GetFinalPathNameByHandleのような関数を呼び出して、シンボリックリンク ターゲットに関する情報を取得できます。

ここでデモhttp://www.codeproject.com/KB/vista/ReparsePointID.aspx

+0

これは多くの相互運用のようです。多分私は 'GetFinalPathNameByHandle()'を使うことができます。そして、FileInfoクラスを使って他の情報を取得するよりも。 – rekire

0

オープンファイルが必要で、GetFileSize関数のサイズを知る必要があります。

+1

といくつかの実際のコードには簡単な解決策はありませんか?ターゲットファイルを取得してFileInfoを再利用するかもしれません... – rekire

関連する問題