0
我創造的目標位置都源&目標目錄的文件列表,要求是基於這兩個文件的差別僅複製是從最後一次迭代的新文件。目錄未發現異常C#
爲第一次重複複製的作品,下一個迭代創建,創建一個空白的差異[不同]文件,處理這種情況,如果我在那裏檢查文件的長度,並再次複製他們我已經加入。但是,如果條件不工作按行爲,與零長度它去else語句,並引發了錯誤空白的文件名:
Could not find a part of the path 'C:\interswitch\source\'.
下面的代碼:
string path = Path.Combine(target_dir, "Diff.txt");
if (new FileInfo(path).Length == 0)
{
foreach (FileInfo fi in sourceinfo.GetFiles())
{
fi.CopyTo(Path.Combine(targetinfo.ToString(), fi.Name), true);
}
}
else
foreach (string file in File.ReadLines(path))
{
{
string sourceFile = System.IO.Path.Combine(source_dir, file);
string destFile = System.IO.Path.Combine(target_dir, file);
System.IO.File.Copy(sourceFile, destFile, true);
}
}
「下一次迭代創建一個空白DIFF [差異]文件被創建」 你能詳細的那句話?另外一個「空」文件不會自動有長度0,你有沒有試過檢查所說的文件長度? – Master117
第一次運行diff文件將具有來自源的所有內容,因爲目標爲空,現在在下一次運行時沒有將新文件添加到源,並且創建目標空diff文件中的相同文件。如果爲空文件不是零長度的,會是什麼,所以你創建一個差異文件,檢查文件是否爲空 – user2385057
啊,理想的方法,這意味着你檢查目標和源目錄之間的diff?爲什麼你將它們寫入文件而不是列表並在內部處理?無論如何,「如果(新的FileInfo(路徑).Length == 0)」是正確的,如果文件是空的,你檢查了文件?也許它不完全是空的? – Master117