DirectoryInfo.Delete DirectoryInfo.Delete DirectoryInfo.Delete DirectoryInfo.Delete Method

定義

パスから DirectoryInfo とその内容を削除します。Deletes a DirectoryInfo and its contents from a path.

オーバーロード

Delete() Delete() Delete() Delete()

DirectoryInfo が空の場合に、そのインスタンスを削除します。Deletes this DirectoryInfo if it is empty.

Delete(Boolean) Delete(Boolean) Delete(Boolean) Delete(Boolean)

中に含まれているサブディレクトリとファイルを削除するかどうかを指定して、DirectoryInfo のインスタンスを削除します。Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

Delete() Delete() Delete() Delete()

DirectoryInfo が空の場合に、そのインスタンスを削除します。Deletes this DirectoryInfo if it is empty.

public:
 override void Delete();
public override void Delete ();
override this.Delete : unit -> unit
Public Overrides Sub Delete ()

例外

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

この DirectoryInfo オブジェクトに記述されているディレクトリが存在しないか、見つかりませんでした。The directory described by this DirectoryInfo object does not exist or could not be found.

ディレクトリが空ではありません。The directory is not empty.

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

または-or- 開いているハンドルがディレクトリに対して存在し、オペレーティング システムが Windows XP またはそれ以前のものです。There is an open handle on the directory, and the operating system is Windows XP or earlier. 開いているハンドルは、ディレクトリを列挙する際に発生した可能性があります。This open handle can result from enumerating directories. 詳細については、「方法 : ディレクトリとファイルを列挙するFor more information, see How to: Enumerate Directories and Files.

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

次の例では、空でないディレクトリを削除しようとすると、例外がスローされます。The following example throws an exception if you attempt to delete a directory that is not empty.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di1 = gcnew DirectoryInfo( "c:\\MyDir" );
   try
   {
      
      // Create the directories.
      di1->Create();
      di1->CreateSubdirectory( "temp" );
      
      //This operation will not be allowed because there are subdirectories.
      Console::WriteLine( "I am about to attempt to delete {0}", di1->Name );
      di1->Delete();
      Console::WriteLine( "The Delete operation was successful, which was unexpected." );
   }
   catch ( Exception^ ) 
   {
      Console::WriteLine( "The Delete operation failed as expected." );
   }

}

using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di1 = new DirectoryInfo(@"c:\MyDir");

        try 
        {
            // Create the directories.
            di1.Create();
            di1.CreateSubdirectory("temp");

            //This operation will not be allowed because there are subdirectories.
            Console.WriteLine("I am about to attempt to delete {0}", di1.Name);
            di1.Delete();
            Console.WriteLine("The Delete operation was successful, which was unexpected.");
        } 
        catch (Exception) 
        {
            Console.WriteLine("The Delete operation failed as expected.");
        } 
        finally {}
    }
}
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di1 As DirectoryInfo = New DirectoryInfo("c:\MyDir")

        Try
            ' Create the directories.
            di1.Create()
            di1.CreateSubdirectory("temp")

            'This operation will not be allowed because there are subdirectories.
            Console.WriteLine("I am about to attempt to delete {0}", di1.Name)
            di1.Delete()
            Console.WriteLine("The Delete operation was successful, which was unexpected.")

        Catch
            Console.WriteLine("The Delete operation was unsuccessful, as expected.")
        End Try
    End Sub
End Class

注釈

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.

セキュリティ

FileIOPermission
ディレクトリの作成に使用します。for writing directories. 関連付けられた列挙型:WriteAssociated enumeration: Write

こちらもご覧ください

Delete(Boolean) Delete(Boolean) Delete(Boolean) Delete(Boolean)

中に含まれているサブディレクトリとファイルを削除するかどうかを指定して、DirectoryInfo のインスタンスを削除します。Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

public:
 void Delete(bool recursive);
public void Delete (bool recursive);
override this.Delete : bool -> unit
Public Sub Delete (recursive As Boolean)

パラメーター

recursive
Boolean Boolean Boolean Boolean

このディレクトリ、そのサブディレクトリ、およびすべてのファイルを削除する場合はtrue 。それ以外の場合は falsetrue to delete this directory, its subdirectories, and all files; otherwise, false.

例外

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

この DirectoryInfo オブジェクトに記述されているディレクトリが存在しないか、見つかりませんでした。The directory described by this DirectoryInfo object does not exist or could not be found.

ディレクトリが読み取り専用です。The directory is read-only.

または-or- ディレクトリに 1 つ以上のファイルまたはサブディレクトリが含まれており、recursivefalse です。The directory contains one or more files or subdirectories and recursive is false.

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

または-or- 開いているハンドルがディレクトリまたはそのディレクトリ内のファイルに対して存在し、オペレーティング システムが Windows XP またはそれ以前のものです。There is an open handle on the directory or on one of its files, and the operating system is Windows XP or earlier. このハンドルが開いている原因は、ディレクトリおよびファイルを列挙したことにある可能性があります。This open handle can result from enumerating directories and files. 詳細については、「方法 : ディレクトリとファイルを列挙するFor more information, see How to: Enumerate Directories and Files.

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

次の例は、ディレクトリを削除する方法を示しています。The following example demonstrates deleting a directory. ディレクトリが削除されているため、最初Deleteに行をコメントアウトして、ディレクトリが存在することをテストします。Because the directory is removed, first comment out the Delete line to test that the directory exists. 次に、同じコード行のコメントを解除して、ディレクトリが正常に削除されたことをテストします。Then uncomment the same line of code to test that the directory was removed successfully.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Make a reference to a directory.
   DirectoryInfo^ di = gcnew DirectoryInfo( "TempDir" );
   
   // Create the directory only if it does not already exist.
   if (  !di->Exists )
      di->Create();

   
   // Create a subdirectory in the directory just created.
   DirectoryInfo^ dis = di->CreateSubdirectory( "SubDir" );
   
   // Process that directory as required.
   // ...
   // Delete the subdirectory. The true indicates that if subdirectories
   // or files are in this directory, they are to be deleted as well.
   dis->Delete( true );
   
   // Delete the directory.
   di->Delete( true );
}

using System;
using System.IO;

public class DeleteTest 
{
    public static void Main() 
    {

        // Make a reference to a directory.
        DirectoryInfo di = new DirectoryInfo("TempDir");

        // Create the directory only if it does not already exist.
        if (di.Exists == false)
            di.Create();

        // Create a subdirectory in the directory just created.
        DirectoryInfo dis = di.CreateSubdirectory("SubDir");

        // Process that directory as required.
        // ...

        // Delete the subdirectory. The true indicates that if subdirectories
        // or files are in this directory, they are to be deleted as well.
        dis.Delete(true);

        // Delete the directory.
        di.Delete(true);
    }
}
Imports System.IO

Public Class DeleteTest

    Public Shared Sub Main()
        ' Make a reference to a directory.
        Dim di As New DirectoryInfo("TempDir")

        ' Create the directory only if it does not already exist.
        If di.Exists = False Then
            di.Create()
        End If

        Dim dis As DirectoryInfo = di.CreateSubdirectory("SubDir")
        ' Create a subdirectory in the directory just created.

        ' Process that directory as required.
        ' ...

        ' Delete the subdirectory. The true indicates that if subdirectories
        ' or files are in this directory, they are to be deleted as well.
        dis.Delete(True)

        ' Delete the directory.
        di.Delete(True)
    End Sub
End Class

注釈

にファイルまたはサブディレクトリDirectoryInfo recursive falseがない場合、このメソッドは、がの場合でもを削除します。 DirectoryInfoIf the DirectoryInfo has no files or subdirectories, this method deletes the DirectoryInfo even if recursive is false. DirectoryInfo recursiveがをスローIOExceptionしたときに空ではないを削除しようとしています。 falseAttempting to delete a DirectoryInfo that is not empty when recursive is false throws an IOException.

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.

セキュリティ

FileIOPermissionAccess
DirectoryInfoおよびサブディレクトリへの書き込みアクセス許可に必要な書き込みフラグを削除します。Write flag required for write permission to the DirectoryInfo and subdirectories to be deleted.

こちらもご覧ください

適用対象