我对File.Copy
感到有点困惑。最初,我正在删除整个目录结构,然后从源路径复制到目标路径,但这需要一段时间。现在我正在做的只是在目标路径上创建目录结构(如果它尚不存在)。如果它存在,我只想复制文件,如果它们更新。删除删除后,副本超快,但我不确定它是否实际上是复制较新的文件。如果我File.Copy(source,target)
,如果不存在,这只会复制文件吗?如果我File.Copy(source,target,true)
,是否会复制文件,无论文件是否更新?
答案 0 :(得分:1)
File.Copy(source,target,true)
将覆盖该文件 - 无论它是否更新。
Copy
没有逻辑来确定文件的新颖性或什么是正确的操作。
您需要自己实现此逻辑 - 如果您只想复制较新的文件,则需要比较两个文件的创建日期并仅复制较新的文件。
答案 1 :(得分:1)
您应该使用FileInfo Class并比较逻辑中的文件。
答案 2 :(得分:1)
如果目标文件已经存在,如果我执行File.Copy(source,target),如果不存在,这只会复制文件吗?
File.Copy(source, target)将抛出IOException
(无论它是否更新)。
如果您的代码使用此代码“快速运行”,我假设您在某处“吞咽异常”(即try
有一个空catch
块。这是邪恶的,因为它使你的程序“出现”,就像它没有正常工作一样。不要那样做!它使调试成为一场噩梦。
如果我执行File.Copy(source,target,true),这是否会复制该文件,无论它是否更新?
是
如果您希望根据某些属性复制文件,可以使用File或FileInfo class ( What's the difference? )< / sub>获取此信息。您可以选择“创建时间”,“上次访问时间”和“上次写入时间”(取决于您如何定义“更新”)。