C++でWin32ハンドルを使用してファイルの名前を取得しようとしています。Win32 Handleを使用してC++でファイル名を取得する方法は?
Windows Vista以上でサポートされているすべての機能(例:GetFinalPathNameByHandle)を使用できないため、ファイルが空である(ファイルを開くと動作しない)場合があります。
ありがとうございました!
C++でWin32ハンドルを使用してファイルの名前を取得しようとしています。Win32 Handleを使用してC++でファイル名を取得する方法は?
Windows Vista以上でサポートされているすべての機能(例:GetFinalPathNameByHandle)を使用できないため、ファイルが空である(ファイルを開くと動作しない)場合があります。
ありがとうございました!
XP +の場合、ファイルをマップしてGetMappedFileName
を呼び出して、名前を返します(ディレクトリではありません)。 Obtaining a File Name From a File Handleを参照してください。
win32は分かりませんが、私はsysinternalsプロセスエクスプローラについて知っています。 Googleはオープンソースの代替手段を思いついた。http://processhacker.sourceforge.net/
多分このコードを勉強することでこれを可能にするだろう。
GetMappedFilename()
は、MSDNで推奨されていますが、最適なソリューションではありません。
私はあなたのコピーのために準備したい正確に何を行い、ここに貼り付けるコードを掲載している: How to get name associated with open HANDLE
あなたは「ハンドラ」とはどういう意味ですか? POSIXファイル記述子? C stdio FILE? C++のiostreamはfstreamですか? Win32 APIの何か? Qt何か他に? –
私は彼が 'CreateFile'から受信したWin32' HANDLE'を意味すると思いますか? –
彼はそれを言うべきです! 'winapi'で質問にタグを付けます。これはC++の質問ではなく、Windowsのプログラミングに関する質問です。 –