Directory.Delete Directory.Delete Directory.Delete Directory.Delete Method

定義

指定されたディレクトリとオプションでサブディレクトリを削除します。Deletes a specified directory, and optionally any subdirectories.

オーバーロード

Delete(String) Delete(String) Delete(String) Delete(String)

指定されたパスから空のディレクトリを削除します。Deletes an empty directory from a specified path.

Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean)

指定したディレクトリと、特に指定されている場合はディレクトリ内の任意のサブディレクトリおよびファイルを削除します。Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

Delete(String) Delete(String) Delete(String) Delete(String)

指定されたパスから空のディレクトリを削除します。Deletes an empty directory from a specified path.

public:
 static void Delete(System::String ^ path);
public static void Delete (string path);
static member Delete : string -> unit
Public Shared Sub Delete (path As String)

パラメーター

path
String String String String

削除する空のディレクトリの名前。The name of the empty directory to remove. このディレクトリは、書き込み可能で空である必要があります。This directory must be writable and empty.

例外

path で指定された同じ名前と場所を持つファイルが存在します。A file with the same name and location specified by path exists.

- または --or- ディレクトリはアプリケーションの現在の作業ディレクトリです。The directory is the application's current working directory.

- または --or- path によって指定されたディレクトリは空ではありません。The directory specified by path is not empty.

- または --or- ディレクトリが読み取り専用になっているか、または読み取り専用のファイルが含まれています。The directory is read-only or contains a read-only file.

- または --or- ディレクトリは別のプロセスによって使用されています。The directory is being used by another process.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path は長さ 0 の文字列で、空白のみで構成されているか、または 1 つ以上の正しくない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters. 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。You can query for invalid characters by using the GetInvalidPathChars() method.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

path が存在しないか、見つかりませんでした。path does not exist or could not be found.

- または --or- 指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

次の例では、新しいディレクトリとサブディレクトリを作成し、そのサブディレクトリのみを削除する方法を示します。The following example shows how to create a new directory and subdirectory, and then delete only the subdirectory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string subPath = @"C:\NewDirectory\NewSubDirectory";

            try
            {
                Directory.CreateDirectory(subPath);   
                Directory.Delete(subPath);

                bool directoryExists = Directory.Exists(@"C:\NewDirectory");
                bool subDirectoryExists = Directory.Exists(subPath);

                Console.WriteLine("top-level directory exists: " + directoryExists);
                Console.WriteLine("sub-directory exists: " + subDirectoryExists);
            }
            catch (Exception e)
            {
                Console.WriteLine("The process failed: {0}", e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim subPath = "C:\NewDirectory\NewSubDirectory"

        Try
            Directory.CreateDirectory(subPath)
            Directory.Delete(subPath)

            Dim directoryExists = Directory.Exists("C:\NewDirectory")
            Dim subDirectoryExists = Directory.Exists(subPath)

            Console.WriteLine("top-level directory exists: " & directoryExists)
            Console.WriteLine("sub-directory exists: " & subDirectoryExists)

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.Message)
        End Try
    End Sub

End Module

注釈

このメソッドは、2 Delete(String, Boolean)false目のパラメーターに対して指定されたと同じように動作します。This method behaves identically to Delete(String, Boolean) with false specified for the second parameter.

パラメーター pathでは、相対パスまたは絶対パス情報を指定できます。The path parameter may specify relative or absolute path information. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するにGetCurrentDirectoryは、「」を参照してください。To obtain the current working directory, see GetCurrentDirectory.

ディレクトリを削除する前に、 pathパラメーターの末尾から末尾のスペースが削除されます。Trailing spaces are removed from the end of the path parameter before deleting the directory.

パラメーターで指定さIOExceptionれたディレクトリにファイルまたはサブディレクトリが含まれている場合、このメソッドはをスローします。 pathThis method throws an IOException if the directory specified in the path parameter contains files or subdirectories.

パラメーター pathでは、大文字と小文字は区別されません。The path parameter is not case-sensitive.

場合によっては、指定したディレクトリがエクスプローラー Deleteで開かれていると、メソッドで削除できないことがあります。In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

セキュリティ

FileIOPermission
指定されたディレクトリに書き込むための。for writing to the specified directory. 関連付けられた列挙型:WriteAssociated enumeration: Write

こちらもご覧ください

Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean) Delete(String, Boolean)

指定したディレクトリと、特に指定されている場合はディレクトリ内の任意のサブディレクトリおよびファイルを削除します。Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

public:
 static void Delete(System::String ^ path, bool recursive);
public static void Delete (string path, bool recursive);
static member Delete : string * bool -> unit
Public Shared Sub Delete (path As String, recursive As Boolean)

パラメーター

path
String String String String

削除するディレクトリの名前。The name of the directory to remove.

recursive
Boolean Boolean Boolean Boolean

path のディレクトリ、サブディレクトリ、およびファイルを削除する場合は true。それ以外の場合は falsetrue to remove directories, subdirectories, and files in path; otherwise, false.

例外

path で指定された同じ名前と場所を持つファイルが存在します。A file with the same name and location specified by path exists.

- または --or- path で指定されたディレクトリが読み取り専用です。または、recursivefalse であり、path は空のディレクトリではありません。The directory specified by path is read-only, or recursive is false and path is not an empty directory.

- または --or- ディレクトリはアプリケーションの現在の作業ディレクトリです。The directory is the application's current working directory.

- または --or- ディレクトリに読み取り専用のファイルが含まれています。The directory contains a read-only file.

または-or- ディレクトリは別のプロセスによって使用されています。The directory is being used by another process.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

path は長さ 0 の文字列で、空白のみで構成されているか、または 1 つ以上の正しくない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters. 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。You can query for invalid characters by using the GetInvalidPathChars() method.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

path が存在しないか、見つかりませんでした。path does not exist or could not be found.

- または --or- 指定されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The specified path is invalid (for example, it is on an unmapped drive).

次の例では、サブディレクトリに新しいディレクトリ、サブディレクトリ、およびファイルを作成し、すべての新しい項目を再帰的に削除する方法を示します。The following example shows how to create a new directory, subdirectory, and file in the subdirectory, and then recursively delete all the new items.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string topPath = @"C:\NewDirectory";
            string subPath = @"C:\NewDirectory\NewSubDirectory";
            
            try
            {
                Directory.CreateDirectory(subPath);

                using (StreamWriter writer = File.CreateText(subPath + @"\example.txt"))
                {
                    writer.WriteLine("content added");
                }
                
                Directory.Delete(topPath, true);

                bool directoryExists = Directory.Exists(topPath);

                Console.WriteLine("top-level directory exists: " + directoryExists);
            }
            catch (Exception e)
            {
                Console.WriteLine("The process failed: {0}", e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim topPath = "C:\NewDirectory"
        Dim subPath = "C:\NewDirectory\NewSubDirectory"

        Try
            Directory.CreateDirectory(subPath)

            Using writer As StreamWriter = File.CreateText(subPath + "\example.txt")
                writer.WriteLine("content added")
            End Using

            Directory.Delete(topPath, True)

            Dim directoryExists = Directory.Exists(topPath)

            Console.WriteLine("top-level directory exists: " & directoryExists)
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.Message)
        End Try
    End Sub

End Module

注釈

パラメーター pathでは、相対パスまたは絶対パス情報を指定できます。The path parameter may specify relative or absolute path information. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するにGetCurrentDirectoryは、「」を参照してください。To obtain the current working directory, see GetCurrentDirectory.

ディレクトリを削除する前に、 pathパラメーターの末尾から末尾のスペースが削除されます。Trailing spaces are removed from the end of the path parameter before deleting the directory.

パラメーター pathでは、大文字と小文字は区別されません。The path parameter is not case-sensitive.

recursiveパラメーターがtrueの場合、ユーザーは、すべてのサブディレクトリに加えて、現在のディレクトリに対する書き込みアクセス許可を持っている必要があります。If the recursive parameter is true, the user must have write permission for the current directory as well as for all subdirectories.

シンボリックリンクやマウントポイントなど、再解析ポイントを含むディレクトリを削除すると、この方法の動作が若干異なります。The behavior of this method differs slightly when deleting a directory that contains a reparse point, such as a symbolic link or a mount point. 再解析ポイントがマウントポイントなどのディレクトリの場合は、マウントが解除され、マウントポイントが削除されます。If the reparse point is a directory, such as a mount point, it is unmounted and the mount point is deleted. このメソッドは、再解析ポイントを再帰しません。This method does not recurse through the reparse point. 再解析ポイントがファイルへのシンボリックリンクの場合、再解析ポイントは削除され、シンボリックリンクのターゲットではなくなります。If the reparse point is a symbolic link to a file, the reparse point is deleted and not the target of the symbolic link.

場合によっては、指定したディレクトリがエクスプローラー Deleteで開かれていると、メソッドで削除できないことがあります。In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

セキュリティ

FileIOPermission
指定されたディレクトリに書き込むための。for writing to the specified directory. 関連付けられた列挙型:WriteAssociated enumeration: Write

こちらもご覧ください

適用対象