Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5年前关闭。
在我正在研究的代码库中,有几个示例
根据MSDN文档(http://msdn.microsoft.com/en-us/library/54a0at6s(v=vs.110).aspx),这是多余的,因为createDirectory不会覆盖现有目录。
这可以看作是使代码更清晰,因为从
另一方面,这是代码膨胀,并且保持它不变(甚至将其添加到库/实用程序类中)都有其问题(例如,您必须阅读/维护更多行代码)。
什么是最佳做法?
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5年前关闭。
在我正在研究的代码库中,有几个示例
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
根据MSDN文档(http://msdn.microsoft.com/en-us/library/54a0at6s(v=vs.110).aspx),这是多余的,因为createDirectory不会覆盖现有目录。
这可以看作是使代码更清晰,因为从
.CreateDirectory(dir)
方法不明显这是行为。另一方面,这是代码膨胀,并且保持它不变(甚至将其添加到库/实用程序类中)都有其问题(例如,您必须阅读/维护更多行代码)。
什么是最佳做法?
最佳答案
它可能看起来很多余,但是我可以看到有人决定这样做的原因。
主要区别在于:Directory.Exists()
仅返回bool
Directory.CreateDirectory()
返回DirectoryInfo
因此,即使目录存在,也需要执行其他工作来获取该DirectoryInfo
实例,这可能根本没有必要。
出现的另一件事是事实,您必须知道Directory.CreateDirectory
不会覆盖该目录(如果存在)!即使有人不知道他真的可以很容易地弄清楚这段代码是怎么回事,也可以通过附加的Directory.Exists
调用。
而且我认为这里没有best practice
。
10-04 21:05