Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便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