このドキュメントはアーカイブされており、メンテナンスされていません。

Directory.Delete メソッド (String, Boolean)

指定したディレクトリと、特に指定されている場合はディレクトリ内の任意のサブディレクトリを削除します。

名前空間: 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

削除するディレクトリの名前。

recursive

path のディレクトリ、サブディレクトリ、およびファイルを削除する場合は true。それ以外の場合は false

例外の種類条件

IOException

名前と位置が path で指定したのと同一のファイルが存在します

または

path で指定したディレクトリが読み取り専用か、または recursivefalse で、path が空のディレクトリではありません。

または

このディレクトリは、アプリケーションの現在の作業ディレクトリです。

UnauthorizedAccessException

呼び出し元に、必要なアクセス許可がありません。

ArgumentException

path が、長さが 0 の文字列であるか、空白しか含んでいないか、または InvalidPathChars で定義されている無効な文字を 1 つ以上含んでいます。

ArgumentNullException

path が null 参照 (Visual Basic では Nothing) です。

PathTooLongException

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windows ベースのプラットフォームの場合、パスの長さは 248 文字未満、ファイル名の長さは 260 文字未満である必要があります。

DirectoryNotFoundException

指定したパスが無効です (割り当てられていないドライブであるなど)。

path パラメータは、相対パス情報または絶対パス情報を指定することを許可されています。相対パス情報は、現在の作業ディレクトリに対して相対的に解釈されます。現在の作業ディレクトリを取得するには、GetCurrentDirectory のトピックを参照してください。

path パラメータでは大文字と小文字が区別されません。

recursive パラメータが true の場合、ユーザーは現在のディレクトリとすべてのサブディレクトリに対する書き込みアクセス許可を持つ必要があります。

シンボリック リンクやマウント ポイントなどのリパース ポイントを含むディレクトリを削除する場合、このメソッドの動作は若干異なります。リパース ポイントがマウント ポイントなどのディレクトリである場合は、マウントが解除され、マウント ポイントが削除されます。このメソッドは、リパース ポイントに対して再帰的な処理を行いません。リパース ポイントがファイルへのシンボリック リンクである場合、リパース ポイントは削除され、シンボリック リンクのターゲットではなくなります。

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

実行するタスク

参考例があるトピック

ディレクトリの名前を変更、またはディレクトリを移動する。

Directory.Move

DirectoryInfo.MoveTo

ファイルを削除する。

File.Delete

FileInfo.Delete

ディレクトリを作成する。

CreateDirectory

Directory

サブディレクトリを作成する。

CreateSubdirectory

ディレクトリ内のファイルを参照する。

Name

ディレクトリ内のサブディレクトリを参照する。

GetDirectories

GetDirectories

ディレクトリ内のすべてのサブディレクトリにあるすべてのファイルを参照する。

GetFileSystemInfos

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 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0
表示: