2

在 .net Directory 类中有一个移动、删除目录的方法。但是,它没有复制目录及其内容的方法。我们必须使用循环复制每个文件和子目录,如下如何:复制目录

我想知道没有 Copy 方法的合理/原因是什么。

4

2 回答 2

4

这是因为 Windows APIMoveFile和相关函数也可以用于移动目录,但CopyFile相关函数不能用于目录。

更根本的是,这是因为移动文件或目录只是重命名它。它实际上并不需要在磁盘上物理移动文件(或文件)数据。当您重命名目录时,它包含的文件会自动“通过引用”选择新路径,就像它一样。不必对每个文件的条目进行操作。

于 2012-11-29T05:06:35.127 回答
3

并不是.NET没有复制整个目录的方法(因为VB.NET中存在一个),而是C#没有复制整个目录的方法。

鉴于其他 .NET 语言支持此功能,C# 中没有此功能似乎不太可能有技术或哲学原因,我们可以退回到“默认情况下不存在功能”的零假设(通常 由 Eric Lippert解释)。

于 2012-11-29T05:41:05.067 回答