以下两个代码段之间的区别是什么?
Directory.Delete(folder)
和
Directory.Delete(folder, false)
我的意思是,如果特定文件夹为空,它们都将删除; 否则,他们会提出异常,对吗?或者有什么我想念的吗?谢谢!
答案 0 :(得分:2)
MSDN documentation 本身提到了差异,它说
删除(字符串)
从指定路径删除空目录。
删除(字符串,布尔值)
删除指定的目录,如果有指示,则删除目录中的所有子目录和文件。
当您将true
作为boolean
变量传递时,它会删除路径中的目录,子目录和文件。
答案 1 :(得分:1)
来自MSDN
Delete(String)
从指定路径删除空目录。
Delete(String, Boolean)
删除指定的目录,如果指示,则删除所有子目录 和目录中的文件。
path参数可以指定相对或绝对路径信息。 相对路径信息被解释为相对于当前 工作目录。要获取当前工作目录,请参阅 GetCurrentDirectory。
之前将从path参数的末尾删除尾随空格 删除目录。
path参数不区分大小写。 如果recursive参数为true,则用户必须具有写入权限 当前目录以及所有目录的权限 子目录。
删除目录时,此方法的行为略有不同 包含重新分析点,例如符号链接或装载 点。如果重新分析点是一个目录,例如挂载点,则它 已卸载并删除挂载点。这种方法没有 通过重新分析点进行递归。如果重新分析点是符号 链接到文件,重新分析点被删除而不是目标 符号链接。
在某些情况下,如果您在File中打开了指定的目录 资源管理器,Delete方法可能无法删除它。
答案 2 :(得分:1)
Directory.Delete(文件夹,布尔值)
boolean决定是否要删除目录中的所有子目录和文件。
答案 3 :(得分:0)
Directory.Delete Method (String)
此方法与Delete(String,Boolean)的行为完全相同,并为第二个参数指定了false。
答案 4 :(得分:0)
Delete (String, Boolean)
基本上会递归删除文件和文件夹,如果设置为false,它只会删除空目录,否则会引发异常。
虽然Delete(String)
只删除空目录,如果文件夹不为空,则会引发异常。
在这两种情况下,目录必须具有执行删除所需的权限。