3

次のコードを使用して、ファイルの作成日、ファイルサイズなどを取得できます。

// 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)); 

しかし、ディレクトリに対して呼び出されると、すべての値がゼロに設定されます - ディレクトリ情報を取得するにはどうすればよいですか?

ありがとう

4

1 に答える 1

8

ディレクトリの有効なハンドルを取得するためにこのフラグを渡す必要があると、このようなことに遭遇しました。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| | ディレクトリへのハンドルを取得するには、このフラグを設定する必要があります。一部の関数には、ファイル ハンドルの代わりにディレクトリ ハンドルを渡すことができます。詳細については、「備考」セクションを参照してください。

于 2010-03-03T13:14:50.887 に答える