主要想用SetFileTime,来修改文件夹的"修改日期"
MSDNBOOL WINAPI SetFileTime(
  __in      HANDLE hFile,
  __in_opt  const FILETIME *lpCreationTime,
  __in_opt  const FILETIME *lpLastAccessTime,
  __in_opt  const FILETIME *lpLastWriteTime
);里说,第一个参数 hFile,必须是由CreateFile返回的值,CreateFile既可以新建一个文件,也可以打开一个已经有的文件。
SetFileTime里说的清楚,既可以修改文件的"修改日期",也可以修改文件夹的,但CreateFile只说是文件,没有提及文件夹。所以这里就卡着了。

解决方案 »

  1.   

    http://topic.csdn.net/t/20041224/17/3674352.html
      

  2.   

    hFile = CreateFile(_T("D:\\KwDownloadx\\rich edit"), FILE_WRITE_ATTRIBUTES, 0, NULL, OPEN_EXISTING, 0, NULL);
      

  3.   


    我已经照着答案里的CreateFile(szFileName,GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); 
    写了,还是出这个错。
      

  4.   

    还是这样啊hFile = 0xffffffff
      

  5.   

    #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
    #define INVALID_FILE_SIZE ((DWORD)0xFFFFFFFF)INVALID_HANDLE_VALUE,也是0xFFFFFFFF
      

  6.   

    GetLastError的结果是,拒绝访问
      

  7.   

    使用FILE_FLAG_BACKUP_SEMANTICS代替你的FILE_ATTRIBUTE_NORMAL Windows   NT/2000/XP:   You   can   obtain   a   handle   to   a   directory   by   setting   the   FILE_FLAG_BACKUP_SEMANTICS   flag.   A   directory   handle   can   be   passed   to   some   functions   in   place   of   a   file   handle. When   using   CreateFile   to   open   a   directory   during   defragmentation   of   a   FAT   or   FAT32   volume,   do   not   specify   the   MAXIMUM_ALLOWED   access   mask   value.   Access   to   the   directory   will   be   denied   if   this   is   done.   Specify   the   GENERIC_READ   access   mask   value   instead. 
      

  8.   

    倒数第二个参数换成FILE_FLAG_BACKUP_SEMANTICS
      

  9.   

    An application cannot create a directory by using CreateFile, therefore only the OPEN_EXISTING value is valid for dwCreationDisposition for this use case. To create a directory, the application must call CreateDirectory or CreateDirectoryEx.