本文档已存档,并且将不进行维护。

Directory.Delete 方法 (String, Boolean)

更新:2007 年 11 月

删除指定的目录并(如果指示)删除该目录中的任何子目录。

命名空间:  System.IO
程序集:  mscorlib(在 mscorlib.dll 中)

public static void Delete(
	string path,
	bool recursive
)
public static void Delete(
	String path,
	boolean recursive
)
public static function Delete(
	path : String, 
	recursive : boolean
)

参数

path
类型:System.String
要移除的目录的名称。
recursive
类型:System.Boolean
若要移除 path 中的目录、子目录和文件,则为 true;否则为 false

异常条件
IOException

存在具有相同名称和 path 指定的位置的文件。

- 或 -

path 指定的目录是只读的,或者 recursivefalse 并且 path 不是空目录。

- 或 -

该目录为应用程序的当前工作目录。

UnauthorizedAccessException

调用方没有所要求的权限。

ArgumentException

path 是一个零长度字符串,仅包含空白或者包含一个或多个由 InvalidPathChars 定义的无效字符。

ArgumentNullException

pathnull

PathTooLongException

指定的路径、文件名或者两者都超出了系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。

DirectoryNotFoundException

指定的路径不存在或找不到。

- 或 -

指定的路径无效(例如,它位于未映射的驱动器上)。

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

path 参数不区分大小写。

如果 recursive 参数为 true,则用户必须具有当前目录及其所有子目录的写权限。

当删除一个包含重分析点(例如符号链接或装入点)的目录时,此方法的行为稍有不同。如果该重分析点为目录(例如装入点),则其将被卸载并且装入点将被删除。该方法不通过该重分析点递归。如果该重分析点为某个文件的符号链接,则该重分析点被删除并且不是此符号链接的目标。

有关通用 I/O 任务的列表,请参见 通用 I/O 任务

Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows CE 平台说明:

某些设备文件系统不支持相对路径。指定绝对路径信息。

下面的代码示例创建并删除指定的目录和子目录。

using System;
using System.IO;

class Test 
{
	
    public static void Main() 
    {
        // Specify the directories you want to manipulate.
        string path = @"c:\MyDir";
        string subPath = @"c:\MyDir\temp";

        try 
        {
            // Determine whether the directory exists.
            if (!Directory.Exists(path)) 
            {
                // Create the directory.
                Directory.CreateDirectory(path);
            }


            if (!Directory.Exists(subPath)) 
            {
                // Create the directory.
                Directory.CreateDirectory(subPath);
            }

            // This will succeed because subdirectories are being deleted.
            Console.WriteLine("I am about to attempt to delete {0}", path);
            Directory.Delete(path, true);
            Console.WriteLine("The Delete operation was successful.");

        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        } 
        finally {}
    }
}


import System.*;
import System.IO.*;

class Test
{
    public static void main(String[] args)
    {
        // Specify the directories you want to manipulate.
        String path = "c:\\MyDir";
        String subPath = "c:\\MyDir\\temp";

        try {
            // Determine whether the directory exists.
            if (!(Directory.Exists(path))) {
                // Create the directory.
                Directory.CreateDirectory(path);
            }

            if (!(Directory.Exists(subPath))) {
                // Create the directory.
                Directory.CreateDirectory(subPath);
            }

            // This will succeed because subdirectories are being deleted.
            Console.WriteLine("I am about to attempt to delete {0}", path);
            Directory.Delete(path, true);
            Console.WriteLine("The Delete operation was successful.");
        }
        catch (System.Exception e) {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {
        }
    } //main
} //Test


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0、2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:3.5、2.0、1.0

XNA Framework

受以下版本支持:2.0、1.0
显示: