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í
| 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.