2012-04-01 27 views
0

に属している私は、WIN32_FIND_DATA属性構造体ftCreationTimeを印刷しようとしているので、私はそれを印刷するために%dを置くが、それは私に負の数を与えて、私は、%Fを試してみましたし、それを与えました私はゼロ、私は助けをしてください必要がありますか?はWIN32_FIND_DATA構造体

#include "stdafx.h" 
#include <windows.h> 
#include <stdio.h> 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    FILETIME a ; 
    WIN32_FIND_DATA x; 
    HANDLE s=FindFirstFile(L"d:\\uni\\*.*",&x); 
    if(s==INVALID_HANDLE_VALUE) 
    { 
     printf("Search failed!\n"); 
     return 0; 
    } 

    if((x.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ==0) 
     _tprintf(L"The first file name is: %s\n",x.cFileName); 
    else 
     _tprintf(L"The first directory name is: %s\n",x.cFileName); 


    while(FindNextFile(s,&x)) 
    { 
     if((x.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ==0) 
      _tprintf(L"The file name is: %s and the size is %d %d\n",x.cFileName,x.nFileSizeLow , x.ftCreationTime); 
     else 
      _tprintf(L"The directory name is: %s\n",x.cFileName); 

    } 
    FindClose(s); 
    return 0; 
} 

答えて

1

WIN32_FIND_DATA::ftCreationTimeは、タイプFILETIMEである。あなたはそれを印刷し、システム時刻に変換するFileTimeToSystemTime()を使用する必要があります。 SYSTEMTIMEを印刷するには

、あなたはちょうどあなたがWIN32_FIND_DATA構造体を印刷する方法のような構造体のフィールドを印刷する必要があります。

SYSTEMTIME systemTime; 
FileTimeToSystemTime(&x.ftCreationTime, &systemTime); 
_tprintf(_T("The creation time is %02d-%02d-%d %02d:%02d:%02d\n"), 
    systemTime.wMonth, systemTime.wDay, systemTime.wYear, 
    systemTime.wHour, systemTime.wMinute, systemTime.wSecond); 
+0

しかし、どのように私は、印刷すべき – Lara