Directory.Delete Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.