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