DirectoryInfo.Delete Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tar bort en DirectoryInfo och dess innehåll från en sökväg.
Överlagringar
| Name | Description |
|---|---|
| Delete() |
Tar bort detta DirectoryInfo om det är tomt. |
| Delete(Boolean) |
Tar bort den här instansen av en DirectoryInfo, som anger om underkataloger och filer ska tas bort. |
Delete()
Tar bort detta DirectoryInfo om det är tomt.
public:
override void Delete();
public override void Delete();
override this.Delete : unit -> unit
Public Overrides Sub Delete ()
Undantag
Katalogen innehåller en skrivskyddad fil.
Katalogen som beskrivs av det här DirectoryInfo objektet finns inte eller så gick det inte att hitta den.
Katalogen är inte tom.
-eller-
Katalogen är programmets aktuella arbetskatalog.
-eller-
Det finns ett öppet handtag i katalogen och operativsystemet är Windows XP eller tidigare. Det här öppna handtaget kan bero på att kataloger räknas upp. Mer information finns i Så här räknar du upp kataloger och filer.
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel genereras ett undantag om du försöker ta bort en katalog som inte är tom.
using System;
using System.IO;
class Test
{
public static void Main()
{
// Specify the directories you want to manipulate.
DirectoryInfo di1 = new DirectoryInfo(@"c:\MyDir");
try
{
// Create the directories.
di1.Create();
di1.CreateSubdirectory("temp");
//This operation will not be allowed because there are subdirectories.
Console.WriteLine("I am about to attempt to delete {0}", di1.Name);
di1.Delete();
Console.WriteLine("The Delete operation was successful, which was unexpected.");
}
catch (Exception)
{
Console.WriteLine("The Delete operation failed as expected.");
}
finally {}
}
}
open System.IO
// Specify the directories you want to manipulate.
let di1 = DirectoryInfo @"c:\MyDir"
try
// Create the directories.
di1.Create()
di1.CreateSubdirectory "temp" |> ignore
//This operation will not be allowed because there are subdirectories.
printfn $"I am about to attempt to delete {di1.Name}"
di1.Delete()
printfn "The Delete operation was successful, which was unexpected."
with _ ->
printfn "The Delete operation failed as expected."
Imports System.IO
Public Class Test
Public Shared Sub Main()
' Specify the directories you want to manipulate.
Dim di1 As DirectoryInfo = New DirectoryInfo("c:\MyDir")
Try
' Create the directories.
di1.Create()
di1.CreateSubdirectory("temp")
'This operation will not be allowed because there are subdirectories.
Console.WriteLine("I am about to attempt to delete {0}", di1.Name)
di1.Delete()
Console.WriteLine("The Delete operation was successful, which was unexpected.")
Catch
Console.WriteLine("The Delete operation was unsuccessful, as expected.")
End Try
End Sub
End Class
Kommentarer
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.
Se även
Gäller för
Delete(Boolean)
Tar bort den här instansen av en DirectoryInfo, som anger om underkataloger och filer ska tas bort.
public:
void Delete(bool recursive);
public void Delete(bool recursive);
override this.Delete : bool -> unit
Public Sub Delete (recursive As Boolean)
Parametrar
- recursive
- Boolean
trueför att ta bort den här katalogen, dess underkataloger och alla filer; annars . false
Undantag
Katalogen innehåller en skrivskyddad fil.
Katalogen som beskrivs av det här DirectoryInfo objektet finns inte eller så gick det inte att hitta den.
Katalogen är skrivskyddad.
-eller-
Katalogen innehåller en eller flera filer eller underkataloger och recursive är false.
-eller-
Katalogen är programmets aktuella arbetskatalog.
-eller-
Det finns ett öppet handtag i katalogen eller på en av dess filer, och operativsystemet är Windows XP eller tidigare. Det här öppna handtaget kan bero på att kataloger och filer räknas upp. Mer information finns i Så här räknar du upp kataloger och filer.
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel visas hur du tar bort en katalog. Eftersom katalogen har tagits bort kommenterar du först ut Delete raden för att testa att katalogen finns. Avkommentar sedan samma kodrad för att testa att katalogen har tagits bort.
using System;
using System.IO;
public class DeleteTest
{
public static void Main()
{
// Make a reference to a directory.
DirectoryInfo di = new DirectoryInfo("TempDir");
// Create the directory only if it does not already exist.
if (!di.Exists)
di.Create();
// Create a subdirectory in the directory just created.
DirectoryInfo dis = di.CreateSubdirectory("SubDir");
// Process that directory as required.
// ...
// Delete the subdirectory. The true indicates that if subdirectories
// or files are in this directory, they are to be deleted as well.
dis.Delete(true);
// Delete the directory.
di.Delete(true);
}
}
open System.IO
// Make a reference to a directory.
let di = DirectoryInfo "TempDir"
// Create the directory only if it does not already exist.
if not di.Exists then
di.Create()
// Create a subdirectory in the directory just created.
let dis = di.CreateSubdirectory "SubDir"
// Process that directory as required.
// ...
// Delete the subdirectory. The true indicates that if subdirectories
// or files are in this directory, they are to be deleted as well.
dis.Delete true
// Delete the directory.
di.Delete true
Imports System.IO
Public Class DeleteTest
Public Shared Sub Main()
' Make a reference to a directory.
Dim di As New DirectoryInfo("TempDir")
' Create the directory only if it does not already exist.
If di.Exists = False Then
di.Create()
End If
Dim dis As DirectoryInfo = di.CreateSubdirectory("SubDir")
' Create a subdirectory in the directory just created.
' Process that directory as required.
' ...
' Delete the subdirectory. The true indicates that if subdirectories
' or files are in this directory, they are to be deleted as well.
dis.Delete(True)
' Delete the directory.
di.Delete(True)
End Sub
End Class
Kommentarer
Om inte DirectoryInfo har några filer eller underkataloger DirectoryInfo tar den här metoden bort även om recursive är false. Försöker ta bort en DirectoryInfo som inte är tom när recursivefalse genererar en IOException.
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.