どのようにWindowsのネイティブAPIを経由してディレクトリ情報を取得しますか?

StackOverflow https://stackoverflow.com/questions/2371204

  •  24-09-2019
  •  | 
  •  

質問

私は、次のコードを使用してのファイルのために作成した日付、ファイルサイズなどを得ることができます

// Error handling removed for brevity 
HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 
             NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 

LARGE_INTEGER fileSize; 
GetFileSizeEx(hFile, &fileSize); 

FILE_BASIC_INFO fileInfo); 
GetFileInformationByHandle(hFile, FileBasicInfo, fileInfo, sizeof(fileInfo)); 
ディレクトリに対して呼び出されたときに

しかし、すべての値がゼロに設定されている - どのように私は、ディレクトリ情報を得るのですか?

おかげ

役に立ちましたか?

解決

あなたは、ディレクトリの有効なハンドルを取得するには、このフラグを渡す必要が一度

私はこのようなものに走りました。 MSDN のドキュメントから。

これを試します
HANDLE hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, 
         NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS, NULL); 

FILE_FLAG_BACKUP_SEMANTICS |あなたは、ディレクトリへのハンドルを取得するために、このフラグを設定する必要があります。ディレクトリハンドルは、いくつかの機能の代わりに、ファイルハンドルに渡すことができます。詳細については、備考セクションを参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top