請問如何用程式更改檔案建立時間 |
尚未結案
|
csm825050
一般會員 ![]() ![]() 發表:49 回覆:29 積分:15 註冊:2003-08-20 發送簡訊給我 |
|
g6101
高階會員 ![]() ![]() ![]() ![]() 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
引言: 請問如何用程式更改檔案建立時間csm825050您好: 以下的範例是將檔案創建時間設定為現在時間 char filename[]="D:\\test\\test1.txt"; HANDLE he; FILETIME fileTime,localTime;//檔案時間結構 SYSTEMTIME sysTime;//系統時間結構 TDateTime dtTime = Now(); //取得現在時間 //檔案開啟並取得HANDLE if ((he = CreateFile(filename,GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)) != NULL) { DateTimeToSystemTime(dtTime,sysTime); //現在時間轉成系統時間 SystemTimeToFileTime(&sysTime,&localTime); //系統時間轉成本地檔案時間 LocalFileTimeToFileTime(&localTime,&fileTime); //本地檔案時間轉成檔案時間 SetFileTime(he,&fileTime,NULL,NULL); //設定檔案創建時間 CloseHandle(he); //關閉檔案HANDLE } |
csm825050
一般會員 ![]() ![]() 發表:49 回覆:29 積分:15 註冊:2003-08-20 發送簡訊給我 |
|
pwipwi
版主 ![]() ![]() ![]() ![]() ![]() 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
引言: g6101你好: 那要如何設定時間呢? 我的檔案時間不一定是目前時間 請不吝指教 #includeHandle is the Windows file handle of the file to alter. FileName is the name of the file to alter. Age is the timestamp to apply to the specified file. 還可以參考一下TDateTime |
g6101
高階會員 ![]() ![]() ![]() ![]() 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
引言: g6101你好: 那要如何設定時間呢? 我的檔案時間不一定是目前時間 請不吝指教請參考下面的程式碼,視需求自行修改 AnsiString str = "2001/10/12 23:30:25"; TDateTime dt; //這是直接把字串轉成時間格式 //dt = StrToDateTime(str); <-不建議你用這種方法 //這是比較正確的作法,先try一下輸入的時間是否存在或正確. if (TryStrToDateTime(str,dt)) { //加入你要處理的動作 }順帶一提的是 pwipwi 兄所提供方法 //----------------------- FileSetDate(int Handle, int Age); FileSetDate(const AnsiString FileName, int Age); //----------------------- 它只能設定檔案最後修改時間,而無法設定創建時間 天長地久有時盡,追求知識無絕期! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |