寫1支程式目的是要讓公司及家裡PC的目錄檔案資料同步,但卻遇到一怪現象,不曉得問題出在那 |
答題得分者是:bestlong
|
ry_lee
高階會員 ![]() ![]() ![]() ![]() 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
我希望在公司PC所新增或刪除之目錄檔案及修改的檔案,能複製到家裡PC,然後在家裡PC所
新增或刪除之目錄檔案及對檔案的修改,之後也反應到公司PC,我先將公司PC之工作目錄複 製到隨身碟,但有一怪現象發生,有好多檔案之修改日期發生變動,比如在公司PC的 MYPassword.txt之修改日期是 99/05/30 14:05:30,但在隨身碟的MYPassword.txt之修改 日期卻是 99/05/30 14:05:31,有些檔案差異是2秒,但從我的NB複製目錄檔案到隨身碟及 從家裡PC複製目錄檔案到隨身碟卻無此怪現象,相同的檔案其修改日期是分秒不差,我會問 這問題是因為相同的檔案我是以修改日期是否是最新來做為是否要複製之依據,我在想會 不會是公司PC是太老舊關係(約95年中買的),或安裝太多軟體之關係,因為在執行含DBGRID 元件之程式,公司PC常會出現INDEX OUT OF RANGE之訊息,但在家裡PC及我的NB卻從未發生 過,在執行Findfirst,Findnext以找出目錄底下之目錄及檔案,公司PC在一些目錄居然找不出檔案來 (比如C:\Program Files\Common Files\Borland Shared\Data),但在家裡PC及我的NB卻能找出所有的檔案. |
minyo
一般會員 ![]() ![]() 發表:0 回覆:6 積分:1 註冊:2003-11-12 發送簡訊給我 |
|
ry_lee
高階會員 ![]() ![]() ![]() ![]() 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
99/11/17下午我用NB把一些delphi目錄檔案複製到隨身碟,好幾個目錄內之所有檔案修改日期都一致,但仍有發生一檔案修改日期不一之問題,那是unit1.dcu檔,在電腦硬碟該檔之修改日期是2010年11月16日, 下午 05:46:03,在隨身碟該檔之修改日期是2010年11月16日, 下午 05:46:04,這問題不知各位先進有沒有遇過呢?如果把程式改為修改日期差距在3秒內視同相同並認為無修改過而不須複製,這樣會不會不妥當呢?
編輯記錄
ry_lee 重新編輯於 2010-11-17 00:52:02, 註解 無‧
|
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
|
ry_lee
高階會員 ![]() ![]() ![]() ![]() 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
|
aftcast
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
插花一下,
依ms的文件說法,檔案可能因為儲存格式的不同而時間有點不同(如fat或fat32或ntfs等)。而2秒的誤差是在os合理的範圍內。 至於2秒內是否視為"無變動"? 這就是主觀與應用的問題。如果說該檔案只可能被"人為的修改",那理當2秒內改不到什麼。但若是由可能透過程式自動的去編輯,那2秒內也可能是有真的變動到了,若是這樣的例子,我個人也覺得應該用md5之類的來比對。 附帶一提,若你是為了在公司或在家要同步自己寫的程式,我建議可使用svn之類的軟體,很好用! ===================引 用 ry_lee 文 章=================== bestlong你好: 若把2秒的誤差忽略,視為是相同的檔案,這樣可以嗎?因為修改檔案在怎麼快速其修改日期時間變動最少也要10秒以上. ===================引 用 bestlong 文 章=================== 在不同電腦間用時間比對檔案是真的會碰到2秒的誤差 我吃過虧, 所以就改寫成用CRC的檢查方式較準確
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
ry_lee
高階會員 ![]() ![]() ![]() ![]() 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
affcast你好:
為什麼可以用SetFileTime去修改一些檔案之修改日期(如*.txt),為何無法改.dcu檔之修改日期(原是.pas) ===================引 用 aftcast 文 章=================== 插花一下, 依ms的文件說法,檔案可能因為儲存格式的不同而時間有點不同(如fat或fat32或ntfs等)。而2秒的誤差是在os合理的範圍內。 至於2秒內是否視為"無變動"? 這就是主觀與應用的問題。如果說該檔案只可能被"人為的修改",那理當2秒內改不到什麼。但若是由可能透過程式自動的去編輯,那2秒內也可能是有真的變動到了,若是這樣的例子,我個人也覺得應該用md5之類的來比對。 附帶一提,若你是為了在公司或在家要同步自己寫的程式,我建議可使用svn之類的軟體,很好用! ===================引 用 ry_lee 文 章=================== bestlong你好: 若把2秒的誤差忽略,視為是相同的檔案,這樣可以嗎?因為修改檔案在怎麼快速其修改日期時間變動最少也要10秒以上. ===================引 用 bestlong 文 章=================== 在不同電腦間用時間比對檔案是真的會碰到2秒的誤差 我吃過虧, 所以就改寫成用CRC的檢查方式較準確 |
bestlong
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:126 回覆:734 積分:512 註冊:2002-10-19 發送簡訊給我 |
這要由你決定, 檢查的機制不外乎幾個例如: 修改日期, 檔案大小, 內容差異
單一大型檔案內容確定相同但是修改日期不同, 你要同步嗎? 若是你只檢查日期不同就傳輸相同的大型檔案, 這不是浪費嗎? 所以你只要同步時間就好不用管內容, 所以要檢查內容 我是有看過某個同步工具軟體有一個設定值就是忽略兩秒誤差的檔案 還有檔案大小相同但內容不同, 時間相同, 這樣要同步嗎? 當然要的... 所以能檢查幾項就檢查 重點還是在檔案資料正確且不要流失, 備份永遠王道. ===================引 用 ry_lee 文 章=================== bestlong你好: 若把2秒的誤差忽略,視為是相同的檔案,這樣可以嗎?因為修改檔案在怎麼快速其修改日期時間變動最少也要10秒以上. ===================引 用 bestlong 文 章=================== 在不同電腦間用時間比對檔案是真的會碰到2秒的誤差 我吃過虧, 所以就改寫成用CRC的檢查方式較準確
------
http://blog.bestlong.idv.tw/ http://www.bestlong.idv.tw/ http://delphi-ktop.bestlong.idv.tw/ |
ry_lee
高階會員 ![]() ![]() ![]() ![]() 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |