VC 獲取檔案屬性建立時間 修改時間和訪問時間

2022-05-04 19:06:29 字數 2722 閱讀 7631

**:

win32_find_data結構

關於檔案的全部屬性資訊,總計有以下以下9 種:檔案的標題名、檔案的屬性(唯讀、存檔,隱藏等)、檔案的建立時間、檔案的最後訪問時間、檔案的最後修改時間、檔案大小的高位雙字、檔案大小的低位雙字、保留、保留。在這裡只有檔案標題名和檔案的長度可以通過cfile模擬較方便的獲得,而對於其他幾種屬性的獲取和設定就無能為力了。

在用findfirst()和findnext()函式去查詢磁碟檔案時經常使用的乙個資料結構win32_find_data的成員變數裡包含了以上所有的檔案屬性,因此可以通過這個結構作為獲取和更改檔案屬性的手段。該結構的內容如下:

typedef struct _win32_find_data win32_find_data, *pwin32_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. 獲取檔案屬性建立時間、修改時間和訪問時間

**:

1

filetime ftcreate, ftmodify, ftaccess;

2cstring 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

10null);

1112

systemtime stlocal;

13if (!getfiletime(hfile, &ftcreate, &ftaccess, &ftmodify))

1417

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獲取建立,修改和訪問時間

原 VC實現修改檔案建立 訪問 修改時間屬性

最近對vc實現修改檔案建立 訪問 修改時間屬性的方法產生了興趣,我便在網上查了這方面的教程,但是卻總是看不明白,有的不夠簡潔。例如在一些文章中提到了使用findfirstfile 函式和win32 find data結構,我認為完全沒有必要,因為到最後時我們需要用到setfiletime 函式,而這...

node實現檔案屬性批量修改 時間屬性

在預設情況下,乙個檔案的建立時間和修改時間是系統自己設定的,我們不能修改該的。但我們有時為了某種特殊需要,為了不讓別人一眼看出檔案已經給修改了,我們又需要修改檔案的建立時間和修改時間。那麼如何修改資料夾時間,如何修改檔案的建立時間,如何批量修改檔案的建立時間 修改時間和訪問時間呢?別著急,接下來就帶...

php獲取檔案建立時間 修改時間

filemtime string filename 返回檔案上次被修改的時間,出錯時返回 false。時間以 unix 時間戳的方式返回,可用於 date filectime string filename 返回檔案上次 inode 被修改的時間,如果出錯則返回 false。時間以 unix 時間戳...