簡體   English   中英

使用File.Copy僅復制較新的文件?

[英]Copy only newer files with File.Copy?

我對File.Copy有點困惑。 最初,我要刪除整個目錄結構,然后從源路徑復制到目標路徑,但這需要一段時間。 現在,我正在做的只是在目標路徑上創建目錄結構(如果尚不存在)。 如果存在,我只想復制較新的文件。 刪除刪除后,副本將變得非常快,但是我不確定它是否實際上是在復制較新的文件。 如果我執行File.Copy(source,target) ,這只會復制不存在的文件嗎? 如果我執行File.Copy(source,target,true) ,這是否復制文件,無論它是否較新?

File.Copy(source,target,true)將覆蓋文件-不管它是否是新的。

Copy沒有邏輯來確定文件的新穎性或正確的操作。

您需要自己實現此邏輯-如果您只想復制較新的文件,則需要比較兩個文件的創建日期,而僅復制較新的文件。

您應該使用FileInfo類並在邏輯中比較文件。

如果我執行File.Copy(source,target),這是否僅復制不存在的文件?

如果目標文件已經存在(無論是否更新),File.Copy(source,target)都將引發IOException

如果使用此代碼“快速運行”,則假定您正在某個地方“吞下異常”(即try使用空的catch塊)。 那是邪惡的,因為它會使您的程序“出現”,就像在不正常運行時一樣。 不要那樣做! 它使調試成為一場噩夢。

如果我執行File.Copy(source,target,true),這是否復制文件,而不管它是否較新?

是。

如果要基於某些屬性復制文件,則可以使用FileFileInfo類 (有什么區別?來獲取此信息。 您可以在“創建時間”,“上次訪問時間”和“上次寫入時間”之間進行選擇(取決於定義“較新”的方式)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM