删除空目录和非空目录的 C# 程序
给定一个目录(空或非空),现在我们必须删除给定的目录。在这里,空目录意味着该目录不存在任何文件或子目录。我们可以将目录定义为文件和子目录的集合,一个目录可以有数据也可以不包含数据。非空目录是指包含文件或子目录的目录。我们可以使用 Directory 类的 Delete() 方法删除目录。此方法以两种不同的方式重载:
- 删除(字符串)
- 删除(字符串,布尔值)
让我们一一讨论。
删除(字符串)
此方法用于从给定路径或位置删除空目录。
句法:
public static void Delete (string Mypath);
其中 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
删除(字符串,布尔值)
此方法用于删除给定目录,如果指示,则删除目录中的任何子目录和文件。
句法:
public static void Delete (string Mypath, bool recursive);
其中 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