無法抓取到正確的日期 |
|
jeremywu
一般會員 發表:3 回覆:4 積分:1 註冊:2006-10-18 發送簡訊給我 |
各位大大好
我利用下列方式去get ftp server上的檔案 但我在get的同時要判斷其時間是否為在我日期條件內 目前發生了我在判斷上出了問題 遠端ftp上的檔案日期為10月12日 但我用下列程式碼抓取後,卻發現日期是今天 是哪一個環節出了問題,請大大給點提示 IdFTP1->List(sl, "*.*", false); ------將這整個ftp路徑中的檔案寫入list for (J = 0; J < (StrToInt(sl->Count)); J ) -----判斷檔案各數跑迴圈 { ftp_GetFile = sl->Strings[J].c_str(); int i = FileAge(ftp_GetFile); ---------利用flieage去get 檔案修改日期 if (i != -1) ---------判斷是否有誤 { temp_Date = FileDateToDateTime(i); -------轉換tdatetime 格式 AnsiString bbb = DateToStr( temp_Date); ------轉成字串來驗証一下 } int k=FileOpen(ftp_GetFile,fmShareDenyNone); -------試著採另一種方式來get檔案建立日期 if (k != -1) { Get_Date = FileDateToDateTime(FileGetDate(k)); ---------轉成tdatetime格式 FileClose(k); } iChkPoint = DayOfTheYear(Get_Date); -----------將日期轉成int做判斷 /////////// 上列的程式碼,抓出來的日期時間都為當天 但實際上,我去ftp server上確認過,日期並不是今天,而是好幾天前, 可見時間判斷出了問題,難不成我是抓到了在list中的檔案時間 我想請問的是,是不是將檔案存入IdFTP1->List(sl, "*.*", false);中時, 時間就已經被變更過了,我所讀取到的其實是list中已變更的檔案時間 如果是如此,請問一下前輩,我該如何避免掉這樣的行為,而可以正確達到我要的功能呢? if (iChkPoint <= ed && iChkPoint >= sd) ------------如果大於起始日和小於終止日即開始進行傳輸 { if (ftp_GetFile != "." && ftp_GetFile != "..") { frmDlUp->ListBox1->Items->Add(ftp_GetFile " 開始傳輸"); NMFTP1->Download(ftp_GetFile ,ftp_GetFile); } } } |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
(1)你從遠端電腦抓回來的檔案儲存到local的電腦裡面,其檔案的建立時間會是目前的系統時間
(2)若你想要修改檔案的建立時間,可參考以下的連結文章 http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=48468
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |