Directory.Delete Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Usuwa określony katalog i opcjonalnie wszystkie podkatalogi.
Przeciążenia
Delete(String) |
Usuwa pusty katalog z określonej ścieżki. |
Delete(String, Boolean) |
Usuwa określony katalog i, jeśli jest to wskazane, wszelkie podkatalogi i pliki w katalogu. |
Delete(String)
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
Usuwa pusty katalog z określonej ścieżki.
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
Nazwa pustego katalogu do usunięcia. Ten katalog musi być zapisywalny i pusty.
Wyjątki
Istnieje plik o tej samej nazwie i lokalizacji określonej przez path
.
-lub-
Katalog jest bieżącym katalogem roboczym aplikacji.
-lub-
Katalog określony przez path
nie jest pusty.
-lub-
Katalog jest tylko do odczytu lub zawiera plik tylko do odczytu.
-lub-
Katalog jest używany przez inny proces.
Obiekt wywołujący nie posiada wymaganych uprawnień.
.NET Framework i .NET Core w wersjach starszych niż 2.1: path
jest ciągiem o zerowej długości, zawiera tylko biały odstęp lub zawiera co najmniej jeden nieprawidłowy znak. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .
path
to null
.
Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.
path
nie istnieje lub nie można go odnaleźć.
-lub-
Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).
Przykłady
W poniższym przykładzie pokazano, jak utworzyć nowy katalog i podkatalog, a następnie usunąć tylko podkatalog.
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
Uwagi
Ta metoda zachowuje się identycznie jak Delete(String, Boolean) w false
przypadku określonego dla drugiego parametru.
Parametr path
może określać informacje o ścieżce względnej lub bezwzględnej. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.
Spacje końcowe są usuwane z końca parametru path
przed usunięciem katalogu.
Ta metoda zgłasza błąd IOException , jeśli katalog określony w parametrze path
zawiera pliki lub podkatalogi.
Ważność wielkości liter parametru path
odpowiada wartości systemu plików, na którym działa kod. Na przykład jest rozróżniana wielkość liter w systemie plików NTFS (domyślny system plików systemu Windows) i rozróżniana wielkość liter w systemach plików systemu Linux.
W niektórych przypadkach, jeśli określony katalog jest otwarty w Eksplorator plików, Delete metoda może nie być w stanie go usunąć.
Zobacz też
Dotyczy
Delete(String, Boolean)
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
Usuwa określony katalog i, jeśli jest to wskazane, wszelkie podkatalogi i pliki w katalogu.
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
Nazwa katalogu do usunięcia.
- recursive
- Boolean
true
aby usunąć katalogi, podkatalogi i pliki w path
pliku ; w przeciwnym razie false
.
Wyjątki
Istnieje plik o tej samej nazwie i lokalizacji określonej przez path
.
-lub-
Katalog określony przez path
jest tylko do odczytu lub recursive
nie false
path
jest pustym katalogiem.
-lub-
Katalog jest bieżącym katalogem roboczym aplikacji.
-lub-
Katalog zawiera plik tylko do odczytu.
-lub-
Katalog jest używany przez inny proces.
Obiekt wywołujący nie posiada wymaganych uprawnień.
.NET Framework i .NET Core w wersjach starszych niż 2.1: path
jest ciągiem o zerowej długości, zawiera tylko biały odstęp lub zawiera co najmniej jeden nieprawidłowy znak. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .
path
to null
.
Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.
path
nie istnieje lub nie można go odnaleźć.
-lub-
Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).
Przykłady
W poniższym przykładzie pokazano, jak utworzyć nowy katalog, podkatalog i plik w podkatalogu, a następnie cyklicznie usunąć wszystkie nowe elementy.
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
Uwagi
Parametr path
może określać informacje o ścieżce względnej lub bezwzględnej. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.
Spacje końcowe są usuwane z końca parametru path
przed usunięciem katalogu.
Ważność wielkości liter parametru path
odpowiada wartości systemu plików, na którym działa kod. Na przykład jest rozróżniana wielkość liter w systemie plików NTFS (domyślny system plików systemu Windows) i rozróżniana wielkość liter w systemach plików systemu Linux.
recursive
Jeśli parametr to true
, użytkownik musi mieć uprawnienia do zapisu dla bieżącego katalogu, a także dla wszystkich podkatalogów.
Zachowanie tej metody różni się nieznacznie podczas usuwania katalogu zawierającego punkt ponownej analizy, na przykład link symboliczny lub punkt instalacji. Jeśli punkt ponownej analizy jest katalogiem, takim jak punkt instalacji, jest on zainstalowany i punkt instalacji zostanie usunięty. Ta metoda nie jest powtarzana przez punkt ponownej analizy. Jeśli punkt ponownej analizy jest łączem symbolicznym do pliku, punkt ponownej analizy zostanie usunięty, a nie element docelowy łącza symbolicznego.
W niektórych przypadkach, jeśli określony katalog jest otwarty w Eksplorator plików, Delete metoda może nie być w stanie go usunąć.