日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

發布時間:2025/5/22 c/c++ 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC++ 获取文件属性创建时间、修改时间和访问时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載:http://blog.sina.com.cn/s/blog_66bf8d8301014ikd.html

WIN32_FIND_DATA結構

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

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

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

可以通過FindFirstFile()函數根據當前的文件存放路徑查找該文件來把待操作文件的相關屬性讀取到WIN32_FIND_DATA結構中去:

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

在使用這個結構時不能手工修改這個結構中的任何數據,結構對于開發人員來說只能作為一個只讀數據,其所有的成員變量都會由系統完成填寫。

實例:

//--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.?獲取文件屬性創建時間、修改時間和訪問時間

轉載: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); // 文件創建時間 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); // 文件修改時間 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); // 文件訪問時間

?

這里的CreateFile只導致文件只能被只讀打開,不能有其他權限,最好用FindFile獲取創建,修改和訪問時間

轉載于:https://www.cnblogs.com/chechen/p/5138604.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。