0

我正在目标位置创建源目录和目标目录的文件列表,要求基于这两个文件的差异,仅复制上次迭代的新文件。

对于第一次迭代复制工作,下一次迭代会创建一个空白的差异 [Difference] 文件,为了处理这个问题,我添加了如果我检查文件长度并再次复制它们的条件。但是 if 条件没有按照行为工作,长度为零,它转到 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);
            }


        }
4

1 回答 1

0

if (new FileInfo(path).Length == 0) 显然不会产生 0,你必须解决这个问题

于 2013-06-13T08:15:44.417 回答