Directory.Delete Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee verwijdert u een opgegeven map en eventueel eventuele submappen.
Overloads
| Name | Description |
|---|---|
| Delete(String) |
Hiermee verwijdert u een lege map uit een opgegeven pad. |
| Delete(String, Boolean) |
Hiermee verwijdert u de opgegeven map en, indien aangegeven, submappen en bestanden in de map. |
Delete(String)
Hiermee verwijdert u een lege map uit een opgegeven pad.
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)
Parameters
- path
- String
De naam van de lege map die u wilt verwijderen. Deze map moet beschrijfbaar en leeg zijn.
Uitzonderingen
Er bestaat een bestand met dezelfde naam en locatie die is path opgegeven door.
– of –
De map is de huidige werkmap van de toepassing.
– of –
De map die is opgegeven door path is niet leeg.
– of –
De map heeft het kenmerk Alleen-lezen of bevat een alleen-lezenbestand.
– of –
De map wordt gebruikt door een ander proces.
De beller heeft niet de vereiste machtiging.
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.
path is null.
Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.
path bestaat niet of kan niet worden gevonden.
– of –
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
Voorbeelden
In het volgende voorbeeld ziet u hoe u een nieuwe map en submap maakt en vervolgens alleen de submap verwijdert.
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
Opmerkingen
Deze methode gedraagt zich identiek aan Delete(String, Boolean) met false opgegeven voor de tweede parameter.
De path parameter kan relatieve of absolute padinformatie opgeven. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .
Volgspaties worden verwijderd uit het einde van de path parameter voordat u de map verwijdert.
Deze methode genereert een IOException als de map die is opgegeven in de path parameter bestanden of submappen bevat.
De hoofdlettergevoeligheid van de path parameter komt overeen met die van het bestandssysteem waarop de code wordt uitgevoerd. Het is bijvoorbeeld niet hoofdlettergevoelig voor NTFS (het standaardbestandssysteem Windows) en hoofdlettergevoelig op Linux-bestandssystemen.
In sommige gevallen, als u de opgegeven map hebt geopend in Verkenner, kan de methode deze Delete mogelijk niet verwijderen.
Zie ook
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven
Van toepassing op
Delete(String, Boolean)
Hiermee verwijdert u de opgegeven map en, indien aangegeven, submappen en bestanden in de map.
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)
Parameters
- path
- String
De naam van de map die u wilt verwijderen.
- recursive
- Boolean
trueom mappen, submappen en bestanden in pathte verwijderen; anders. false
Uitzonderingen
Er bestaat een bestand met dezelfde naam en locatie die is path opgegeven door.
– of –
De map die is opgegeven door path is alleen-lezen of recursive is false en path is geen lege map.
– of –
De map is de huidige werkmap van de toepassing.
– of –
De map bevat een bestand met het kenmerk Alleen-lezen.
– of –
De map wordt gebruikt door een ander proces.
De beller heeft niet de vereiste machtiging.
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.
path is null.
Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.
path bestaat niet of kan niet worden gevonden.
– of –
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
Voorbeelden
In het volgende voorbeeld ziet u hoe u een nieuwe map, submap en bestand maakt in de submap en vervolgens recursief alle nieuwe items verwijdert.
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
Opmerkingen
De path parameter kan relatieve of absolute padinformatie opgeven. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .
Volgspaties worden verwijderd uit het einde van de path parameter voordat u de map verwijdert.
De hoofdlettergevoeligheid van de path parameter komt overeen met die van het bestandssysteem waarop de code wordt uitgevoerd. Het is bijvoorbeeld niet hoofdlettergevoelig voor NTFS (het standaardbestandssysteem Windows) en hoofdlettergevoelig op Linux-bestandssystemen.
Als de recursive parameter is true, moet de gebruiker schrijfmachtigingen hebben voor de huidige map en voor alle submappen.
Het gedrag van deze methode verschilt enigszins wanneer u een map verwijdert die een reparsepunt bevat, zoals een symbolische koppeling of een koppelpunt. Als het reparsepunt een map is, zoals een koppelpunt, is deze niet gekoppeld en wordt het koppelpunt verwijderd. Deze methode recurseert niet via het reparsepunt. Als het reparsepunt een symbolische koppeling naar een bestand is, wordt het reparsepunt verwijderd en niet het doel van de symbolische koppeling.
In sommige gevallen, als u de opgegeven map hebt geopend in Verkenner, kan de methode deze Delete mogelijk niet verwijderen.
Zie ook
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven