📜  删除空目录和非空目录的 C# 程序

📅  最后修改于: 2022-05-13 01:55:38.961000             🧑  作者: Mango

删除空目录和非空目录的 C# 程序

给定一个目录(空或非空),现在我们必须删除给定的目录。在这里,空目录意味着该目录不存在任何文件或子目录。我们可以将目录定义为文件和子目录的集合,一个目录可以有数据也可以不包含数据。非空目录是指包含文件或子目录的目录。我们可以使用 Directory 类的 Delete() 方法删除目录。此方法以两种不同的方式重载:

  • 删除(字符串)
  • 删除(字符串,布尔值)

让我们一一讨论。

删除(字符串)

此方法用于从给定路径或位置删除空目录。

句法:

其中 Mypath 是我们要删除的给定目录的位置,此参数的类型是字符串。

例外:

它可以有以下例外

  • IOException:当存在与 Mypath 给出的名称和位置相同的文件时,会发生此异常。或者该目录是只读的。
  • UnauthorizedAccessException:当调用者没有指定权限时会发生此异常。
  • ArgumentNullException:当 Mypath 为 null 时会发生此异常。
  • PathTooLongException:当给定的 Mypath、文件名或两者都超过系统定义的最大长度时,将发生此异常。
  • DirectoryNotFoundException:当 Mypath 不存在或找不到时会发生此异常。或者给定的路径无效。

示例 1:

让我们考虑 D 盘中名为“sravan”的空目录。现在使用 Delete(String) 方法我们删除“sravan”目录。

C#
// C# program to delete the empty directory
// Using Delete(string) method
using System;
using System.IO;
  
class GFG{
  
static void Main()
{
      
    // Delete empty directory
    // Using Delete() method
    Directory.Delete("D:/sravan");
    Console.WriteLine("Deleted");
}
}


C#
// C# program to delete the empty directory
// Using Delete(string) method
using System;
using System.IO;
  
class GFG{
      
static void Main()
{
      
    // Delete empty directory
    // Using Delete() method
    Directory.Delete("D:/vignan");
    Console.WriteLine("Deleted");
}
}


C#
// C# program to delete the empty directory
// Using Delete(String, Boolean) method
using System;
using System.IO;
  
class GFG{
  
static void Main()
{
      
    // Delete empty directory
    // Using Delete(String, Boolean) method
    Directory.Delete("D:/vignan", true);
    Console.WriteLine("Deleted");
}
}


C#
// C# program to delete the non-empty directory
// Using Delete(String, Boolean) method
using System;
using System.IO;
  
class GFG{
      
static void Main()
{
      
    // Delete non-empty directory
    // Using Delete(String, Boolean) method
    Directory.Delete("D:/sravan", true);
    Console.WriteLine("Deleted");
}
}


输出:

Deleted

示例 2:

让我们考虑一个名为“vignan”的非空目录,在 D 驱动器中有一个名为“test”的文件。现在使用 Delete(String) 方法,我们将删除“vignan”目录。

C#

// C# program to delete the empty directory
// Using Delete(string) method
using System;
using System.IO;
  
class GFG{
      
static void Main()
{
      
    // Delete empty directory
    // Using Delete() method
    Directory.Delete("D:/vignan");
    Console.WriteLine("Deleted");
}
}

输出:

Deleted

删除(字符串,布尔值)

此方法用于删除给定目录,如果指示,则删除目录中的任何子目录和文件。

句法:

其中 Mypath 是目录路径,如果为真,则使用递归来删除文件、目录等。否则为假。

例外:

它可以有以下例外

  • IOException:当存在 Mypath 指定的具有相同名称和位置的文件时,会发生此异常。或者该目录是只读的。
  • UnauthorizedAccessException:当调用者没有所需的权限时会发生此异常。
  • ArgumentNullException:当 Mypath 为 null 时会发生此异常。
  • PathTooLongException:当指定的 Mypath、文件名或两者都超过系统定义的最大长度时,将发生此异常。
  • DirectoryNotFoundException:当 Mypath 不存在或找不到时会发生此异常。

示例 1:

让我们考虑 D 盘中名为“vignan”的空目录。现在使用 Delete(String, Boolean) 方法,我们将删除“vignan”目录。

C#

// C# program to delete the empty directory
// Using Delete(String, Boolean) method
using System;
using System.IO;
  
class GFG{
  
static void Main()
{
      
    // Delete empty directory
    // Using Delete(String, Boolean) method
    Directory.Delete("D:/vignan", true);
    Console.WriteLine("Deleted");
}
}

输出:

Deleted

示例 2:

让我们考虑一个名为“sravan”的非空目录,在 D 驱动器中有一个名为“test”的文件。现在使用 Delete(String, Boolean) 方法,我们将删除“sravan”目录。

C#

// C# program to delete the non-empty directory
// Using Delete(String, Boolean) method
using System;
using System.IO;
  
class GFG{
      
static void Main()
{
      
    // Delete non-empty directory
    // Using Delete(String, Boolean) method
    Directory.Delete("D:/sravan", true);
    Console.WriteLine("Deleted");
}
}

输出:

Deleted