Directory.Delete Metodo

Definizione

Elimina una directory specificata e, facoltativamente, tutte le sottodirectory.

Overload

Nome Descrizione
Delete(String)

Elimina una directory vuota da un percorso specificato.

Delete(String, Boolean)

Elimina la directory specificata e, se indicato, eventuali sottodirectory e file nella directory.

Delete(String)

Origine:
Directory.cs
Origine:
Directory.cs
Origine:
Directory.cs
Origine:
Directory.cs
Origine:
Directory.cs

Elimina una directory vuota da un percorso specificato.

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. Questa directory deve essere scrivibile e vuota.

Eccezioni

Esiste un file con lo stesso nome e percorso specificato da path .

oppure

La directory è la directory di lavoro corrente dell'applicazione.

oppure

La directory specificata da path non è vuota.

oppure

La directory è di sola lettura o contiene un file di sola lettura.

oppure

La directory viene usata da un altro processo.

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars().

path è null.

Il percorso, il nome file specificato o entrambi superano la lunghezza massima definita dal sistema.

path non esiste o non è stato possibile trovare.

oppure

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Esempio

Nell'esempio seguente viene illustrato come creare una nuova directory e sottodirectory e quindi eliminare solo la sottodirectory.

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);
            }
        }
    }
}
open System.IO

let subPath = @"C:\NewDirectory\NewSubDirectory"

try
    Directory.CreateDirectory subPath |> ignore
    Directory.Delete subPath

    let directoryExists = Directory.Exists @"C:\NewDirectory"
    let subDirectoryExists = Directory.Exists subPath

    printfn $"top-level directory exists: {directoryExists}"
    printfn $"sub-directory exists: {subDirectoryExists}"
with e ->
    printfn $"The process failed: {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) quello false specificato per il secondo parametro.

Il path parametro può specificare informazioni relative o assolute sul percorso. Le informazioni sul percorso relative sono interpretate come relative alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

Gli spazi finali vengono rimossi dalla fine del path parametro prima di eliminare la directory.

Questo metodo genera un'eccezione IOException se la directory specificata nel path parametro contiene file o sottodirectory.

La distinzione tra maiuscole e minuscole del path parametro corrisponde a quella del file system in cui è in esecuzione il codice. Ad esempio, non fa distinzione tra maiuscole e minuscole in NTFS (file system Windows predefinito) e fa distinzione tra maiuscole e minuscole nei file system Linux.

In alcuni casi, se la directory specificata è aperta in Esplora file, il Delete metodo potrebbe non essere in grado di eliminarlo.

Vedi anche

Si applica a

Delete(String, Boolean)

Origine:
Directory.cs
Origine:
Directory.cs
Origine:
Directory.cs
Origine:
Directory.cs
Origine:
Directory.cs

Elimina la directory specificata e, se indicato, eventuali sottodirectory e file nella 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.

recursive
Boolean

true per rimuovere directory, sottodirectory e file in ; in pathcaso contrario, false.

Eccezioni

Esiste un file con lo stesso nome e percorso specificato da path .

oppure

La directory specificata da path è di sola lettura o recursive è false e path non è una directory vuota.

oppure

La directory è la directory di lavoro corrente dell'applicazione.

oppure

La directory contiene un file di sola lettura.

oppure

La directory viene usata da un altro processo.

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti alla 2.1: path è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi. È possibile eseguire una query per individuare caratteri non validi usando il metodo GetInvalidPathChars().

path è null.

Il percorso, il nome file specificato o entrambi superano la lunghezza massima definita dal sistema.

path non esiste o non è stato possibile trovare.

oppure

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Esempio

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.

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);
            }
        }
    }
}
open System.IO

let topPath = @"C:\NewDirectory"
let subPath = @"C:\NewDirectory\NewSubDirectory"

try
    Directory.CreateDirectory(subPath) |> ignore

    do
        use writer = File.CreateText(subPath + @"\example.txt")
        writer.WriteLine "content added"

    Directory.Delete(topPath, true)

    let directoryExists = Directory.Exists topPath

    printfn $"top-level directory exists: {directoryExists}"
    
with e ->
    printfn $"The process failed: {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 path parametro può specificare informazioni relative o assolute sul percorso. Le informazioni sul percorso relative sono interpretate come relative alla directory di lavoro corrente. Per ottenere la directory di lavoro corrente, vedere GetCurrentDirectory.

Gli spazi finali vengono rimossi dalla fine del path parametro prima di eliminare la directory.

La distinzione tra maiuscole e minuscole del path parametro corrisponde a quella del file system in cui è in esecuzione il codice. Ad esempio, non fa distinzione tra maiuscole e minuscole in NTFS (file system Windows predefinito) e fa distinzione tra maiuscole e minuscole nei file system Linux.

Se il recursive parametro è true, l'utente deve disporre dell'autorizzazione di scrittura per la directory corrente e per tutte le sottodirectory.

Il comportamento di questo metodo è leggermente diverso quando si elimina una directory contenente un punto reparse, ad esempio un collegamento simbolico o un punto di montaggio. Se il punto reparse è una directory, ad esempio un punto di montaggio, viene smontato e il punto di montaggio viene eliminato. Questo metodo non si ripete attraverso il punto reparse. Se il punto reparse è un collegamento simbolico a un file, il punto reparse viene eliminato e non la destinazione del collegamento simbolico.

In alcuni casi, se la directory specificata è aperta in Esplora file, il Delete metodo potrebbe non essere in grado di eliminarlo.

Vedi anche

Si applica a