2012-04-16 10 views
-2

C++でWin32ハンドルを使用してファイルの名前を取得しようとしています。Win32 Handleを使用してC++でファイル名を取得する方法は?

Windows Vista以上でサポートされているすべての機能(例:GetFinalPathNameByHandle)を使用できないため、ファイルが空である(ファイルを開くと動作しない)場合があります。

ありがとうございました!

+2

あなたは「ハンドラ」とはどういう意味ですか? POSIXファイル記述子? C stdio FILE? C++のiostreamはfstreamですか? Win32 APIの何か? Qt何か他に? –

+1

私は彼が 'CreateFile'から受信したWin32' HANDLE'を意味すると思いますか? –

+0

彼はそれを言うべきです! 'winapi'で質問にタグを付けます。これはC++の質問ではなく、Windowsのプログラミングに関する質問です。 –

答えて

0

XP +の場合、ファイルをマップしてGetMappedFileNameを呼び出して、名前を返します(ディレクトリではありません)。 Obtaining a File Name From a File Handleを参照してください。

0

win32は分かりませんが、私はsysinternalsプロセスエクスプローラについて知っています。 Googleはオープンソースの代替手段を思いついた。http://processhacker.sourceforge.net/

多分このコードを勉強することでこれを可能にするだろう。

0

GetMappedFilename()は、MSDNで推奨されていますが、最適なソリューションではありません。

私はあなたのコピーのために準備したい正確に何を行い、ここに貼り付けるコードを掲載している: How to get name associated with open HANDLE

関連する問題