Directory.Delete Metoda

Definice

Odstraní zadaný adresář a volitelně všechny podadresáře.

Přetížení

Name Description
Delete(String)

Odstraní prázdný adresář ze zadané cesty.

Delete(String, Boolean)

Odstraní zadaný adresář a v případě potřeby všechny podadresáře a soubory v adresáři.

Delete(String)

Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs

Odstraní prázdný adresář ze zadané cesty.

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)

Parametry

path
String

Název prázdného adresáře, který chcete odebrat. Tento adresář musí být zapisovatelný a prázdný.

Výjimky

Soubor se stejným názvem a umístěním zadaným path existuje.

nebo

Adresář je aktuální pracovní adresář aplikace.

nebo

Adresář určený parametrem path není prázdný.

nebo

Adresář je jen pro čtení nebo obsahuje soubor jen pro čtení.

nebo

Adresář používá jiný proces.

Volající nemá požadované oprávnění.

Verze .NET Framework a .NET Core starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody můžete zadat dotaz na neplatné znaky GetInvalidPathChars() .

path je null.

Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

path neexistuje nebo nebyl nalezen.

nebo

Zadaná cesta je neplatná (například je na nemapované jednotce).

Příklady

Následující příklad ukazuje, jak vytvořit nový adresář a podadresář a pak odstranit pouze podadresář.

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

Poznámky

Tato metoda se chová stejně jako Delete(String, Boolean)false zadaná pro druhý parametr.

Parametr path může zadat relativní nebo absolutní informace o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři. Aktuální pracovní adresář získáte v tématu GetCurrentDirectory.

Koncové mezery se před odstraněním adresáře odeberou z konce parametru path .

Tato metoda vyvolá IOException , pokud adresář zadaný v path parametru obsahuje soubory nebo podadresáře.

Citlivost na malá a velká písmena path parametru odpovídá systému souborů, na kterém je kód spuštěný. Například nerozlišuje malá a velká písmena v systému souborů NTFS (výchozí systém souborů Windows) a v systémech linuxových souborů rozlišují malá a velká písmena.

V některých případech, pokud máte zadaný adresář otevřený v Průzkumníku souborů, je možné, Delete že metoda nebude moci odstranit.

Viz také

Platí pro

Delete(String, Boolean)

Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs
Zdroj:
Directory.cs

Odstraní zadaný adresář a v případě potřeby všechny podadresáře a soubory v adresáři.

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)

Parametry

path
String

Název adresáře, který chcete odebrat.

recursive
Boolean

true k odebrání adresářů, podadresářů a souborů v path; v opačném případě false.

Výjimky

Soubor se stejným názvem a umístěním zadaným path existuje.

nebo

Adresář určený path jen pro čtení nebo recursive je false a path není prázdným adresářem.

nebo

Adresář je aktuální pracovní adresář aplikace.

nebo

Adresář obsahuje soubor jen pro čtení.

nebo

Adresář používá jiný proces.

Volající nemá požadované oprávnění.

Verze .NET Framework a .NET Core starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody můžete zadat dotaz na neplatné znaky GetInvalidPathChars() .

path je null.

Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

path neexistuje nebo nebyl nalezen.

nebo

Zadaná cesta je neplatná (například je na nemapované jednotce).

Příklady

Následující příklad ukazuje, jak vytvořit nový adresář, podadresář a soubor v podadresáři a pak rekurzivně odstranit všechny nové položky.

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

Poznámky

Parametr path může zadat relativní nebo absolutní informace o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři. Aktuální pracovní adresář získáte v tématu GetCurrentDirectory.

Koncové mezery se před odstraněním adresáře odeberou z konce parametru path .

Citlivost na malá a velká písmena path parametru odpovídá systému souborů, na kterém je kód spuštěný. Například nerozlišuje malá a velká písmena v systému souborů NTFS (výchozí systém souborů Windows) a v systémech linuxových souborů rozlišují malá a velká písmena.

recursive Pokud je trueparametr , musí mít uživatel oprávnění k zápisu pro aktuální adresář i pro všechny podadresáře.

Chování této metody se mírně liší při odstraňování adresáře, který obsahuje spojovací bod, například symbolické propojení nebo přípojný bod. Pokud je spojovací bod adresář, například přípojný bod, je odpojen a přípojný bod se odstraní. Tato metoda neprovádí rekurse prostřednictvím bodu opakování. Pokud je spojovací bod symbolickým odkazem na soubor, odstraní se spojovací bod, nikoli cíl symbolického propojení.

V některých případech, pokud máte zadaný adresář otevřený v Průzkumníku souborů, je možné, Delete že metoda nebude moci odstranit.

Viz také

Platí pro