2013-02-26 62 views
13

我正在用C#编写一个程序,其中包含大量的IO操作。 某些操作正在复制目录。为什么没有C#中的Directory.Copy

当我发现在C#中没有像Directory.copy(SourceDir,DestinationDir)这样的东西时,我真的很惊讶。

我GOOGLE了一下,在msdn他们给一个代码示例复制目录。 (http://msdn.microsoft.com/en-us/library/bb762914.aspx)。 但是,当您进一步搜索一点时,Microsoft.VisualBasic.FileIO命名空间中有一个Directory.Copy方法。 (http://msdn.microsoft.com/en-us/library/ms127957.aspx

我可以参考,这个命名空间和使用这种方法,但必须有一个原因,为什么微软不支持这种在C#中,为什么他们没有提到它在MSDN上。

希望有人能告诉我原因。

我可以写扩展方法来解决这个问题&我可以解决它很容易,但我的问题是为什么?为什么在C#中没有这样的方法,我只想知道:-)

+0

VB团队添加了一些Utils,您可以使用可用的类轻松开发自己的东西。 – Aphelion 2013-02-26 15:36:02

+3

**为什么**对任何人都是不可能的,除了框架的开发者回答。我们只能推测,或多或少受过教育。 =) – 2013-02-26 15:38:21

回答

4

因为很容易在DirectoryInfo.GetFiles()上执行foreach,同时也让您有机会过滤正在复制的文件列表,除复制之外的其他操作。

如果真的困扰你,请写DirectoryInfo类或FileInfo[]集合的扩展方法。

+1

没有说服力:) – Anri 2013-02-26 15:36:25

+0

那么为什么它在VB.NET中的Microsoft.VisualBasic.FileIO命名空间中可用,并且它在C#的命名空间中不可用? – 2013-02-26 15:38:14

+3

@Bram:Xml Literals也可以在'Microsoft.VisualBasic'命名空间中使用,以及其他一些东西。 C#团队倾向于简洁;如果某个功能没有提供重要的增值功能,则不包括它。 – 2013-02-26 15:39:53

2

我的猜测是,VB面向更多的初学者,像Microsoft.VisualBasic.FileIO这样的东西是为了吸引他们到.NET世界。