Condividi tramite


Directory.Delete Metodo

Definizione

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

Overload

Delete(String)

Elimina una directory vuota dal percorso specificato.

Delete(String, Boolean)

Elimina la directory specificata e, se indicate, le sottodirectory e i file in essa contenuti.

Delete(String)

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

Elimina una directory vuota dal 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. La directory deve essere accessibile in scrittura e vuota.

Eccezioni

Un file con lo stesso nome e percorso specificati da path esiste.

-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 è usata da un altro processo.

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti a 2.1: path è una stringa di lunghezza zero, contiene solo spazio vuoto o contiene uno o più caratteri non validi. È possibile cercare i caratteri non validi usando il metodo GetInvalidPathChars().

path è null.

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

path non esiste o non è stato trovato.

-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) con false specificato per il secondo parametro.

Il path parametro può specificare informazioni sul percorso relativo o assoluto. Le informazioni relative sul percorso 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 parametro prima di path eliminare la directory.

Questo metodo genera un valore 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, è senza distinzione tra maiuscole e minuscole in NTFS (file system windows predefinito) e 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

Elimina la directory specificata e, se indicate, le sottodirectory e i file in essa contenuti.

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 path; in caso contrario, false.

Eccezioni

Un file con lo stesso nome e percorso specificati da path esiste.

-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 è usata da un altro processo.

Il chiamante non dispone dell'autorizzazione richiesta.

.NET Framework e versioni di .NET Core precedenti a 2.1: path è una stringa di lunghezza zero, contiene solo spazio vuoto o contiene uno o più caratteri non validi. È possibile cercare i caratteri non validi usando il metodo GetInvalidPathChars().

path è null.

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

path non esiste o non è stato trovato.

-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 sul percorso relativo o assoluto. Le informazioni relative sul percorso 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 parametro prima di path 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, è senza distinzione tra maiuscole e minuscole in NTFS (file system windows predefinito) e distinzione tra maiuscole e minuscole nei file system Linux.

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

Il comportamento di questo metodo è leggermente diverso quando si elimina una directory che contiene un punto di ripristino, ad esempio un collegamento simbolico o un punto di montaggio. Se il punto di correzione è una directory, ad esempio un punto di montaggio, viene smontato e il punto di montaggio viene eliminato. Questo metodo non si ripete tramite il punto di correzione. Se il punto reparse è un collegamento simbolico a un file, il punto di ripristino 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