Język

Directory.Delete Metoda

Definicja

Usuwa określony katalog i opcjonalnie wszystkie podkatalogi.

Przeciążenia

Nazwa Opis
Delete(String)

Usuwa pusty katalog z określonej ścieżki.

Delete(String, Boolean)

Usuwa określony katalog i, jeśli zostanie wskazany, wszystkie podkatalogi i pliki w katalogu.

Delete(String)

Źródło:
Directory.cs
Źródło:
Directory.cs
Ź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

Plik o tej samej nazwie i lokalizacji określonej przez path program istnieje.

— 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 ma wymaganych uprawnień.

Wersje .NET Framework i .NET Core starsze niż 2.1: path to ciąg o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .

Parametr path ma wartość null.

Określona ścieżka, nazwa pliku lub obie metody 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ędem 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.

Wielkość liter parametru path odpowiada ważności liter systemu plików, na którym jest uruchomiony kod. Na przykład nie jest rozróżniana wielkość liter w systemie plików NTFS (domyślny system plików systemu Windows) i uwzględnia wielkość liter w systemach plików systemu Linux.

W niektórych przypadkach, jeśli określony katalog jest otwarty w Eksploratorze 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
Źródło:
Directory.cs
Źródło:
Directory.cs

Usuwa określony katalog i, jeśli zostanie wskazany, wszystkie 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 pliku ; w pathprzeciwnym razie false.

Wyjątki

Plik o tej samej nazwie i lokalizacji określonej przez path program istnieje.

— lub —

Katalog określony przez path jest tylko do odczytu lub recursive jest false i path nie 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 ma wymaganych uprawnień.

Wersje .NET Framework i .NET Core starsze niż 2.1: path to ciąg o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .

Parametr path ma wartość null.

Określona ścieżka, nazwa pliku lub obie metody 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ędem 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.

Wielkość liter parametru path odpowiada ważności liter systemu plików, na którym jest uruchomiony kod. Na przykład nie jest rozróżniana wielkość liter w systemie plików NTFS (domyślny system plików systemu Windows) i uwzględnia wielkość liter w systemach plików systemu Linux.

recursive Jeśli parametr ma truewartość , 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, taki jak łącze symboliczne lub punkt instalacji. Jeśli punkt ponownej analizy jest katalogiem, takim jak punkt instalacji, jest on niezainstalowany 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 Eksploratorze plików, Delete metoda może nie być w stanie go usunąć.

Zobacz też

Dotyczy