Directory.Delete Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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é
- Vstupně-výstupní operace souborů a Stream
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
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 true
parametr , 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é
- Vstupně-výstupní operace souborů a Stream
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru