Directory.Delete Metodo

Definizione

Elimina una directory specificata e, facoltativamente, le eventuali sottodirectory.Deletes a specified directory, and optionally any subdirectories.

Overload

Delete(String)

Elimina una directory vuota dal percorso specificato.Deletes an empty directory from a specified path.

Delete(String, Boolean)

Elimina la directory specificata e, se indicate, le sottodirectory e i file in essa contenuti.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

Delete(String)

Elimina una directory vuota dal percorso specificato.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)

Parametri

path
String

Nome della directory vuota da rimuovere.The name of the empty directory to remove. La directory deve essere accessibile in scrittura e vuota.This directory must be writable and empty.

Eccezioni

Un file con lo stesso nome e percorso specificati da path esiste.A file with the same name and location specified by path exists.

-oppure--or- La directory è la directory di lavoro corrente dell'applicazione.The directory is the application's current working directory.

-oppure--or- La directory specificata da path non è vuota.The directory specified by path is not empty.

-oppure--or- La directory è di sola lettura o contiene un file di sola lettura.The directory is read-only or contains a read-only file.

-oppure--or- La directory è usata da un altro processo.The directory is being used by another process.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

path è una stringa di lunghezza zero, contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is a zero-length string, contains only white space, or contains one or more invalid characters. È possibile cercare i caratteri non validi usando il metodo GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

path è null.path is null.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

path non esiste o non è stato trovato.path does not exist or could not be found.

-oppure--or- Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid (for example, it is on an unmapped drive).

Esempi

Nell'esempio seguente viene illustrato come creare una nuova directory e sottodirectory e quindi eliminare solo la sottodirectory.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

Commenti

Questo metodo si comporta in modo identico a Delete(String, Boolean) con false specificato per il secondo parametro.This method behaves identically to Delete(String, Boolean) with false specified for the second parameter.

Il parametro path può specificare informazioni sul percorso relativo o assoluto.The path parameter may specify relative or absolute path information. Le informazioni sul percorso relativo vengono interpretate in relazione alla directory di lavoro corrente.Relative path information is interpreted as relative to the current working directory. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

Gli spazi finali vengono rimossi dalla fine del parametro path prima di eliminare la directory.Trailing spaces are removed from the end of the path parameter before deleting the directory.

Questo metodo genera un'IOException se la directory specificata nel parametro path contiene file o sottodirectory.This method throws an IOException if the directory specified in the path parameter contains files or subdirectories.

Il parametro path non distingue tra maiuscole e minuscole.The path parameter is not case-sensitive.

In alcuni casi, se la directory specificata è aperta in Esplora file, il metodo Delete potrebbe non essere in grado di eliminarlo.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

Sicurezza

FileIOPermission
per la scrittura nella directory specificata.for writing to the specified directory. Enumerazione associata: WriteAssociated enumeration: Write

Vedi anche

Delete(String, Boolean)

Elimina la directory specificata e, se indicate, le sottodirectory e i file in essa contenuti.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)

Parametri

path
String

Nome della directory da rimuovere.The name of the directory to remove.

recursive
Boolean

true per rimuovere directory, sottodirectory e file in path; in caso contrario, false.true to remove directories, subdirectories, and files in path; otherwise, false.

Eccezioni

Un file con lo stesso nome e percorso specificati da path esiste.A file with the same name and location specified by path exists.

-oppure--or- La directory specificata da path è di sola lettura o recursive è false e path non è una directory vuota.The directory specified by path is read-only, or recursive is false and path is not an empty directory.

-oppure--or- La directory è la directory di lavoro corrente dell'applicazione.The directory is the application's current working directory.

-oppure--or- La directory contiene un file di sola lettura.The directory contains a read-only file.

-oppure--or- La directory è usata da un altro processo.The directory is being used by another process.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

path è una stringa di lunghezza zero, contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is a zero-length string, contains only white space, or contains one or more invalid characters. È possibile cercare i caratteri non validi usando il metodo GetInvalidPathChars().You can query for invalid characters by using the GetInvalidPathChars() method.

path è null.path is null.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

path non esiste o non è stato trovato.path does not exist or could not be found.

-oppure--or- Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid (for example, it is on an unmapped drive).

Esempi

Nell'esempio seguente viene illustrato come creare una nuova directory, sottodirectory e file nella sottodirectory e quindi eliminare in modo ricorsivo tutti i nuovi elementi.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

Commenti

Il parametro path può specificare informazioni sul percorso relativo o assoluto.The path parameter may specify relative or absolute path information. Le informazioni sul percorso relativo vengono interpretate in relazione alla directory di lavoro corrente.Relative path information is interpreted as relative to the current working directory. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

Gli spazi finali vengono rimossi dalla fine del parametro path prima di eliminare la directory.Trailing spaces are removed from the end of the path parameter before deleting the directory.

Il parametro path non distingue tra maiuscole e minuscole.The path parameter is not case-sensitive.

Se il parametro recursive è true, l'utente deve disporre dell'autorizzazione di scrittura per la directory corrente e per tutte le sottodirectory.If the recursive parameter is true, the user must have write permission for the current directory as well as for all subdirectories.

Il comportamento di questo metodo differisce leggermente quando si elimina una directory che contiene un reparse point, ad esempio un collegamento simbolico o un punto di montaggio.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. Se il punto di analisi è una directory, ad esempio un punto di montaggio, viene smontato e il punto di montaggio viene eliminato.If the reparse point is a directory, such as a mount point, it is unmounted and the mount point is deleted. Questo metodo non esegue la ricorsione tramite il punto di analisi.This method does not recurse through the reparse point. Se il reparse point è un collegamento simbolico a un file, il reparse point viene eliminato e non la destinazione del collegamento simbolico.If the reparse point is a symbolic link to a file, the reparse point is deleted and not the target of the symbolic link.

In alcuni casi, se la directory specificata è aperta in Esplora file, il metodo Delete potrebbe non essere in grado di eliminarlo.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

Sicurezza

FileIOPermission
per la scrittura nella directory specificata.for writing to the specified directory. Enumerazione associata: WriteAssociated enumeration: Write

Vedi anche

Si applica a