FileIO.FileSystem.CopyFile()vs System.IO.File.Copy()

时间:2013-01-08 09:41:11

标签: .net vb.net copy

关于这两个类与这些特定方法之间的区别,我有几个问题,FileIO.FileSystem.CopyFile()和System.IO.File.Copy()

在最简单的层面上,当使用sourceFile重载时,它们都会做同样的事情,destinationFile和bool设置为true来覆盖。 EG

FileIO.FileSystem.CopyFile(source, destination, True) 
System.IO.File.Copy(source, destination, True)

我的两个问题是

  1. 显示过载的2之间有什么区别,因为我无法找到(或者可能是我错过了点)MSDN网站上的任何内容。
  2. 当你不在MSDN文档中时,你(那个回答的那个人)怎么知道差异?

4 个答案:

答案 0 :(得分:7)

快速查看反射器显示FileIO.FileSystem.Copy中的 Microsoft.VisualBasic.dll ,在执行一些完整性检查后,只会移交给File.Copy(文件,目录存在例如)并在需要时创建目标目录。

答案 1 :(得分:2)

一些检查后的VisualBasic版本调用System.IO.File.Copy,我发现使用dotPeek,dotPeek是.NET反编译器。

答案 2 :(得分:1)

我能看到的唯一区别是他们有可能提出不同的例外列表 - 我发现,我害怕,通过阅读MSDN文档:o)

答案 3 :(得分:0)

在我自己的研究之后,似乎确实做了一些没有记录的事情。

如果文件夹不存在,

FileIO.FileSystem.CopyFile(source, destination, true)将创建一个文件夹,而System.IO.File.Copy(source, desintation, true)则不会,并抛出异常。

出现,当使用FileIO.FileSystem.CopyFile(source, destination, true)时,引用仍保留在内存中,因此在尝试删除新文件夹或文件时,会抛出异常“ ...已经由另一个进程使用“。