日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

VC++ 获取文件属性创建时间、修改时间和访问时间

發(fā)布時(shí)間:2025/5/22 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC++ 获取文件属性创建时间、修改时间和访问时间 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載:http://blog.sina.com.cn/s/blog_66bf8d8301014ikd.html

WIN32_FIND_DATA結(jié)構(gòu)

  關(guān)于文件的全部屬性信息,總計(jì)有以下以下9 種:文件的標(biāo)題名、文件的屬性(只讀、存檔,隱藏等)、文件的創(chuàng)建時(shí)間、文件的最后訪問(wèn)時(shí)間、文件的最后修改時(shí)間、文件大小的高位雙字、文件大小的低位雙字、保留、保留。在這里只有文件標(biāo)題名和文件的長(zhǎng)度可以通過(guò)CFile類比較方便的獲得,而對(duì)于其他幾種屬性的獲取和設(shè)置就無(wú)能為力了。

  在用findfirst()和findnext()函數(shù)去查找磁盤文件時(shí)經(jīng)常使用的一個(gè)數(shù)據(jù)結(jié)構(gòu)WIN32_FIND_DATA的成員變量里包含了以上所有的文件屬性,因此可以通過(guò)這個(gè)結(jié)構(gòu)作為獲取和更改文件屬性的手段。該結(jié)構(gòu)的內(nèi)容如下:

typedef struct _WIN32_FIND_DATA {
  DWORD dwFileAttributes; //文件屬性
  FILETIME ftCreationTime; // 文件創(chuàng)建時(shí)間
  FILETIME ftLastAccessTime; // 文件最后一次訪問(wèn)時(shí)間
  FILETIME ftLastWriteTime; // 文件最后一次修改時(shí)間
  DWORD nFileSizeHigh; // 文件長(zhǎng)度高32位
  DWORD nFileSizeLow; // 文件長(zhǎng)度低32位
  DWORD dwReserved0; // 系統(tǒng)保留
  DWORD dwReserved1; // 系統(tǒng)保留
  TCHAR cFileName[ MAX_PATH ]; // 長(zhǎng)文件名
  TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;

可以通過(guò)FindFirstFile()函數(shù)根據(jù)當(dāng)前的文件存放路徑查找該文件來(lái)把待操作文件的相關(guān)屬性讀取到WIN32_FIND_DATA結(jié)構(gòu)中去:

WIN32_FIND_DATA ffd ;
HANDLE hFind = FindFirstFile("c:\test.dat",&ffd);

在使用這個(gè)結(jié)構(gòu)時(shí)不能手工修改這個(gè)結(jié)構(gòu)中的任何數(shù)據(jù),結(jié)構(gòu)對(duì)于開發(fā)人員來(lái)說(shuō)只能作為一個(gè)只讀數(shù)據(jù),其所有的成員變量都會(huì)由系統(tǒng)完成填寫。

實(shí)例:

//--get the LastWriteTime of folder/files
WIN32_FIND_DATA ffd ;
HANDLE hFind = FindFirstFile(openedSourceDir,&ffd);
SYSTEMTIME stUTC, stLocal;
FileTimeToSystemTime(&(ffd.ftLastWriteTime), &stUTC);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
myTime.Format("%d. %d %d, %d:%d", stLocal.wDay,stLocal.wMonth,stLocal.wYear,stLocal.wHour,stLocal.wMinute);
//--
d_ColorStatic.SetWindowText((LPCTSTR)myTime);

?

2.?獲取文件屬性創(chuàng)建時(shí)間、修改時(shí)間和訪問(wèn)時(shí)間

轉(zhuǎn)載:http://blog.csdn.net/awu999328/article/details/24470621

1 FILETIME ftCreate, ftModify, ftAccess; 2 CString strCreateTime, strModifyTime, strAccessTime; 3 CString strFilePath = _T(""); 4 5 HANDLE hFile = CreateFile(strFilePath, GENERIC_READ, // open for reading 6 FILE_SHARE_READ, // share for reading 7 NULL, // default security 8 OPEN_EXISTING, // existing file only 9 FILE_FLAG_BACKUP_SEMANTICS , // normal file 10 NULL); 11 12 SYSTEMTIME stLocal; 13 if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftModify)) 14 { 15 return ; 16 } 17 18 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); 19 FileTimeToSystemTime(&ftCreate, &stLocal); 20 strCreateTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件創(chuàng)建時(shí)間 21 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); 22 FileTimeToSystemTime(&ftModify, &stLocal); 23 strModifyTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件修改時(shí)間 24 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); 25 FileTimeToSystemTime(&ftAccess, &stLocal); 26 strAccessTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件訪問(wèn)時(shí)間

?

這里的CreateFile只導(dǎo)致文件只能被只讀打開,不能有其他權(quán)限,最好用FindFile獲取創(chuàng)建,修改和訪問(wèn)時(shí)間

轉(zhuǎn)載于:https://www.cnblogs.com/chechen/p/5138604.html

總結(jié)

以上是生活随笔為你收集整理的VC++ 获取文件属性创建时间、修改时间和访问时间的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。