FileSystem.FileCopy vs objFSO.CopyFile

有什么具体的情况下我应该使用以下或可以互换?

选项1

... FileSystem.FileCopy... ... 

选项2

 ... Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile ... 

或者是选项1,引擎盖下,只是选项2?

选项1的FileSystem.FileCopy是内置的VBAfunction,用于复制文件,其核心语言的一部分并始终可用(您不需要FileSystem命名空间前缀)

备选scheme2更为复杂; 它使用COM来创build一个后期绑定的FSO实例,并调用一个名字相同的方法,并执行与内置方法相同的方法。

与选项1相比,使用选项2似乎没有什么好处,唯一的function区别在于FSO公开了一个控制覆盖行为的参数,您需要使用内置的FileCopy手动处理(足够小)。

我发现FileCopy方法可能会失败,如果源文件被另一个用户打开,但FSO方法在这两种情况下都可以。