我用WIN32_FIND_DATA获取文件信息后想用rename修改文件名,但WIN32_FIND_DATA好象是只读的,该怎么弄啊

解决方案 »

  1.   

    WIN32_FIND_DATA本来就不可写,自己构造一个自定义的Fileinfo写回typedef struct _FILE_INFO {     TCHAR szFileTitle[128]; //文件的标题名     DWORD dwFileAttributes; //文件的属性     FILETIME ftCreationTime; //文件的创建时间     FILETIME ftLastAccessTime; //文件的最后访问时间     FILETIME ftLastWriteTime; //文件的最后修改时间     DWORD nFileSizeHigh; //文件大小的高位双字     DWORD nFileSizeLow; //文件大小的低位双字     DWORD dwReserved0; //保留,为0     DWORD dwReserved1; //保留,为0  } FILE_INFO, * PFILE_INFO; 
    首先用FindFirstFile()函数将文件属性获取到WIN32_FIND_DATA 结构对象FindFileData中去,之后用FindClose()将其关闭,并把FindFileData中的有关文件属性信息的内容复制到自定义结构FILE_INFO的结构对象FileInfo中备用。
    //声明结构对象  
    FILE_INFO FileInfo;  WIN32_FIND_DATA FindFileData;  //获取文件属性信息  FindClose(FindFirstFile("Test.txt",&FindFileData));  memset(&FileInfo,0,sizeof(FILE_INFO));  
    //将文件属性信息保存到FileInfo中备用  strcpy(FileInfo.szFileTitle,myFile.GetFileTitle());  FileInfo.dwFileAttributes = FindFileData.dwFileAttributes;  FileInfo.ftCreationTime = FindFileData.ftCreationTime;  FileInfo.ftLastAccessTime = FindFileData.ftLastAccessTime;  FileInfo.ftLastWriteTime = FindFileData.ftLastWriteTime;  FileInfo.nFileSizeHigh = FindFileData.nFileSizeHigh;  FileInfo.nFileSizeLow = FindFileData.nFileSizeLow;  修改文件名用CreateFile就行了.修改文件属性:
    用SetFileAttributes() 函数
    SetFileAttributes(FileInfo.szFileTitle,FileInfo.dwFileAttributes);
      

  2.   

    然后直接修改szFileTitle就OK了?