Sdílet prostřednictvím


Directory.Delete Metoda

Definice

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

Přetížení

Delete(String)

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

Delete(String, Boolean)

Odstraní zadaný adresář a všechny podadresáře a soubory v adresáři, pokud jsou uvedené.

Delete(String)

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ý se má odebrat. Tento adresář musí být zapisovatelný a prázdný.

Výjimky

Soubor se stejným názvem a umístěním určeným parametrem path existuje.

-nebo-

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

-nebo-

Adresář zadaný 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í.

.NET Framework a .NET Core verze 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ů. Na neplatné znaky se můžete dotazovat pomocí metody .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 nenamapované 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) se zadaným false pro druhý parametr.

Parametr path může určovat relativní nebo absolutní informace o cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Pokud chcete získat aktuální pracovní adresář, přečtěte si téma GetCurrentDirectory.

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

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

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

V některých případech, pokud máte zadaný adresář otevřený v Průzkumník souborů, Delete nemusí být metoda schopna jej odstranit.

Viz také

Platí pro

Delete(String, Boolean)

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

Odstraní zadaný adresář a všechny podadresáře a soubory v adresáři, pokud jsou uvedené.

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ý se má odebrat.

recursive
Boolean

true pro 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 určeným parametrem path existuje.

-nebo-

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

-nebo-

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

-nebo-

Adresář obsahuje soubor jen pro čtení.

-nebo-

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

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

.NET Framework a .NET Core verze 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ů. Na neplatné znaky se můžete dotazovat pomocí metody .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 nenamapované jednotce).

Příklady

Následující příklad ukazuje, jak vytvořit nový adresář, podadresář a soubor v podadresáři a 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 určovat relativní nebo absolutní informace o cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Pokud chcete získat aktuální pracovní adresář, přečtěte si téma GetCurrentDirectory.

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

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

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 odstranění adresáře, který obsahuje spojovací bod, jako je symbolický odkaz nebo přípojný bod. Pokud je spojovacím bodem adresář, například přípojný bod, je odpojen a přípojný bod se odstraní. Tato metoda neprovádí rekurse přes spojovací bod. Pokud je spojovacím bodem symbolický odkaz na soubor, odstraní se bod rozboru, nikoli cíl symbolického odkazu.

V některých případech, pokud máte zadaný adresář otevřený v Průzkumník souborů, Delete nemusí být metoda schopna jej odstranit.

Viz také

Platí pro