Windows Vista/2008からは、File IDによるファイル処理が標準で実装されている。これは、NTFSとかでGetFileInformationByHandleを使って取得できるBY_HANDLE_FILE_INFORMATION::nFileIndex*と同じもの。ファイルIDがわかっていれば、IDとドライブ識別のためのハンドルだけでファイルが開けるし、当然、ファイルIDからファイル名が取得できる。 そして、このAPIは、Windows XP/2003でも、Win32 FileID API Libraryでダウンロードできるfileextd.libをリンクすれば利用できる。 なので、このAPIはXP以降のOSならば使えると考えてよい。以下は、適当に書いたサンプル。コマンドラインの第1引数に与えられたファイルをCreateFileで開いた後に、ハンドルから元のファイル名を復元