Directory.Delete Metod

Definition

Tar bort en angiven katalog och eventuellt eventuella underkataloger.

Överlagringar

Name Description
Delete(String)

Tar bort en tom katalog från en angiven sökväg.

Delete(String, Boolean)

Tar bort den angivna katalogen och, om det anges, eventuella underkataloger och filer i katalogen.

Delete(String)

Tar bort en tom katalog från en angiven sökväg.

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)

Parametrar

path
String

Namnet på den tomma katalogen som ska tas bort. Den här katalogen måste vara skrivbar och tom.

Undantag

Det finns en fil med samma namn och plats som anges av path .

-eller-

Katalogen är programmets aktuella arbetskatalog.

-eller-

Katalogen som anges av path är inte tom.

-eller-

Katalogen är skrivskyddad eller innehåller en skrivskyddad fil.

-eller-

Katalogen används av en annan process.

Anroparen har inte den behörighet som krävs.

.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .

path är null.

Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.

path finns inte eller kunde inte hittas.

-eller-

Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).

Exempel

I följande exempel visas hur du skapar en ny katalog och underkatalog och sedan bara tar bort underkatalogen.

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

Kommentarer

Den här metoden fungerar identiskt Delete(String, Boolean) med den false som angetts för den andra parametern.

Parametern path kan ange relativ eller absolut sökvägsinformation. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.

Avslutande blanksteg tas bort från slutet av parametern path innan katalogen tas bort.

Den här metoden genererar en IOException om katalogen som anges i parametern path innehåller filer eller underkataloger.

Parameterns path skiftlägeskänslighet motsvarar det filsystem där koden körs. Det är till exempel skiftlägeskänsligt på NTFS (standard Windows filsystem) och skiftlägeskänsligt på Linux-filsystem.

Om du i vissa fall har den angivna katalogen öppen i Utforskaren kanske metoden inte kan ta bort den Delete .

Se även

Gäller för

Delete(String, Boolean)

Tar bort den angivna katalogen och, om det anges, eventuella underkataloger och filer i katalogen.

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)

Parametrar

path
String

Namnet på den katalog som ska tas bort.

recursive
Boolean

trueom du vill ta bort kataloger, underkataloger och filer i path, annars . false

Undantag

Det finns en fil med samma namn och plats som anges av path .

-eller-

Katalogen som anges av path är skrivskyddad eller recursive är false och path är inte en tom katalog.

-eller-

Katalogen är programmets aktuella arbetskatalog.

-eller-

Katalogen innehåller en skrivskyddad fil.

-eller-

Katalogen används av en annan process.

Anroparen har inte den behörighet som krävs.

.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .

path är null.

Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.

path finns inte eller kunde inte hittas.

-eller-

Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).

Exempel

I följande exempel visas hur du skapar en ny katalog, underkatalog och fil i underkatalogen och sedan rekursivt tar bort alla nya objekt.

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

Kommentarer

Parametern path kan ange relativ eller absolut sökvägsinformation. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.

Avslutande blanksteg tas bort från slutet av parametern path innan katalogen tas bort.

Parameterns path skiftlägeskänslighet motsvarar det filsystem där koden körs. Det är till exempel skiftlägeskänsligt på NTFS (standard Windows filsystem) och skiftlägeskänsligt på Linux-filsystem.

Om parametern recursive är truemåste användaren ha skrivbehörighet för den aktuella katalogen samt för alla underkataloger.

Beteendet för den här metoden skiljer sig något när du tar bort en katalog som innehåller en referenspunkt, till exempel en symbolisk länk eller en monteringspunkt. Om referenspunkten är en katalog, till exempel en monteringspunkt, tas den bort och monteringspunkten tas bort. Den här metoden upprepas inte via referenspunkten. Om referenspunkten är en symbolisk länk till en fil tas referenspunkten bort och inte målet för den symboliska länken.

Om du i vissa fall har den angivna katalogen öppen i Utforskaren kanske metoden inte kan ta bort den Delete .

Se även

Gäller för