線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2600
推到 Plurk!
推到 Facebook!

無法抓取到正確的日期

 
jeremywu
一般會員


發表:3
回覆:4
積分:1
註冊:2006-10-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-18 14:12:01 IP:59.120.xxx.xxx 未訂閱
各位大大好
我利用下列方式去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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-12-04 12:04:48 IP:220.130.xxx.xxx 未訂閱
(1)你從遠端電腦抓回來的檔案儲存到local的電腦裡面,其檔案的建立時間會是目前的系統時間
(2)若你想要修改檔案的建立時間,可參考以下的連結文章
http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=48468
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-03-29 22:17:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!