Udostępnij za pośrednictwem


Directory.Delete Metoda

Definicja

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 pathpliku ; 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 falsepath 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ąć.

Zobacz też

Dotyczy