**:
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. 獲取檔案屬性建立時間、修改時間和訪問時間
**:
1filetime 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 時間戳...