本人想提取文件属性信息,用到一个结构体如下:
typedef struct _WIN32_FIND_DATA { 
  DWORD dwFileAttributes; 
  FILETIME ftCreationTime; 
  FILETIME ftLastAccessTime; 
  FILETIME ftLastWriteTime; 
  DWORD nFileSizeHigh; 
  DWORD nFileSizeLow; 
  DWORD dwOID; 
  TCHAR cFileName[MAX_PATH]; 
} WIN32_FIND_DATA; 
其中,FILETIME结构体如下:
typedef struct _FILETIME { 
  DWORD dwLowDateTime; 
  DWORD dwHighDateTime; 
} FILETIME; 我定义了一个
WIN32_FIND_DATA fd;
并且已经取得了一个文件的属性信息,但是其中的各种类型转换不是很明白,例如DWORD、TIME等并且想把相应的数据存储到SQL SERVER数据库中,也不知道与数据库中的哪个数据类型相对应上,请求指点。

解决方案 »

  1.   

    在DWORD上点右键,然后go to defination 就知道的DWORD是如何定义得了
      

  2.   

    thank you ~~
    但是时间呢?
    在调试过程中,我看到里面的数据是十六进制的数,我怎样才能转换成YYYY/MM/dd或者HH/MM/ss类似于这个样子的数据呢?
      

  3.   

    时间自己转换成 CTime或者COleDateTime
      

  4.   

    FILETIME ft;
    SYSTEMTIME st; FileTimeToSystemTime(&localFt,&st); CString sTime; sTime.Format("%04d年%02d月%02d日%02d点%02d分%02d秒",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
      

  5.   

    FILETIME ftime;
    COleDateTime datetime(ftime);
    CString strTime; int nYear = datetime.GetYear(); int nMonth = datetime.GetMonth(); int nDay = datetime.GetDay(); int nHour = datetime.GetHour(); int nMin = datetime.GetMinute(); int nSec = datetime.GetSecond(); strTime.Format("%d年%d月%d日%d点%d分%d秒",              nYear, nMonth, nDay, nHour, nMin, nSec);
      

  6.   

    那么如果我想把FcTime一起插入,语句应该是这样吗?
    strSql.Format("INSERT INTO FileProperty(dwFileAttributes,ftCreationTime)VALUES(%d,%s)",Fa,_bstr_t(FcTime));运行没有通过,我在SQLSERVER中用把时间字段改成varchar类型吗?
      

  7.   

    解决了,应该
    strSql.Format("INSERT INTO FileProperty(dwFileAttributes,ftCreationTime)VALUES(%d,‘%s’)",FaFcTime);
    我没有加引号!!