Directory.Delete(文件夹)和Directory.Delete(文件夹,false)之间的区别是什么?

时间:2015-10-26 05:59:29

标签: c# directory

以下两个代码段之间的区别是什么?

Directory.Delete(folder)

Directory.Delete(folder, false)

我的意思是,如果特定文件夹为空,它们都将删除; 否则,他们会提出异常,对吗?或者有什么我想念的吗?谢谢!

5 个答案:

答案 0 :(得分:2)

MSDN documentation 本身提到了差异,它说

  

删除(字符串)

从指定路径删除空目录。

  

删除(字符串,布尔值)

删除指定的目录,如果有指示,则删除目录中的所有子目录和文件。

当您将true作为boolean变量传递时,它会删除路径中的目录,子目录和文件。

答案 1 :(得分:1)

来自MSDN

  Delete(String)    
  

从指定路径删除空目录。

Delete(String, Boolean) 
  

删除指定的目录,如果指示,则删除所有子目录   和目录中的文件。

     

path参数可以指定相对或绝对路径信息。   相对路径信息被解释为相对于当前   工作目录。要获取当前工作目录,请参阅   GetCurrentDirectory。

     

之前将从path参数的末尾删除尾随空格   删除目录。

More information

  

path参数不区分大小写。   如果recursive参数为true,则用户必须具有写入权限   当前目录以及所有目录的权限   子目录。

     

删除目录时,此方法的行为略有不同   包含重新分析点,例如符号链接或装载   点。如果重新分析点是一个目录,例如挂载点,则它   已卸载并删除挂载点。这种方法没有   通过重新分析点进行递归。如果重新分析点是符号   链接到文件,重新分析点被删除而不是目标   符号链接。

     

在某些情况下,如果您在File中打开了指定的目录   资源管理器,Delete方法可能无法删除它。

答案 2 :(得分:1)

  

Directory.Delete(文件夹,布尔值)

boolean决定是否要删除目录中的所有子目录和文件。

答案 3 :(得分:0)

Directory.Delete Method (String)

  

此方法与Delete(String,Boolean)的行为完全相同,并为第二个参数指定了false。

答案 4 :(得分:0)

如果boolean设置为true,

Delete (String, Boolean)基本上会递归删除文件和文件夹,如果设置为false,它只会删除空目录,否则会引发异常。

虽然Delete(String)只删除空目录,如果文件夹不为空,则会引发异常。

在这两种情况下,目录必须具有执行删除所需的权限。