Directory.Delete Yöntem

Tanım

Belirtilen bir dizini ve isteğe bağlı olarak tüm alt dizinleri siler.

Aşırı Yüklemeler

Name Description
Delete(String)

Belirtilen yoldan boş bir dizini siler.

Delete(String, Boolean)

Belirtilen dizini ve belirtilirse dizindeki tüm alt dizinleri ve dosyaları siler.

Delete(String)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen yoldan boş bir dizini siler.

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)

Parametreler

path
String

Kaldırılacak boş dizinin adı. Bu dizin yazılabilir ve boş olmalıdır.

Özel durumlar

tarafından path belirtilen aynı ada ve konuma sahip bir dosya var.

-veya-

Dizin, uygulamanın geçerli çalışma dizinidir.

-veya-

tarafından path belirtilen dizin boş değil.

-veya-

Dizin salt okunur veya salt okunur bir dosya içeriyor.

-veya-

Dizin başka bir işlem tarafından kullanılıyor.

Çağıranın gerekli izni yok.

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. GetInvalidPathChars() yöntemini kullanarak geçersiz karakterleri sorgulayabilirsiniz.

path, null'e eşittir.

Belirtilen yol, dosya adı veya her ikisi de sistem tanımlı uzunluk üst sınırını aşıyor.

path yok veya bulunamadı.

-veya-

Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).

Örnekler

Aşağıdaki örnekte yeni bir dizin ve alt dizinin nasıl oluşturulacağı ve ardından yalnızca alt dizinin nasıl silineceği gösterilmektedir.

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

Açıklamalar

Bu yöntem, ikinci parametre için belirtilen ile Delete(String, Boolean) aynı şekilde false davranır.

path parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgileri geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz. GetCurrentDirectory.

Dizin silinmeden önce parametrenin sonundan path sondaki boşluklar kaldırılır.

Bu yöntem, parametresinde IOException belirtilen dizin dosyaları veya alt dizinleri içeriyorsa bir path oluşturur.

parametresinin path büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemine karşılık gelir. Örneğin, NTFS'de (varsayılan Windows dosya sistemi) büyük/küçük harfe duyarlı değildir ve Linux dosya sistemlerinde büyük/küçük harfe duyarlıdır.

Bazı durumlarda, belirtilen dizini Dosya Gezgini'nde açtıysanız, Delete yöntemi bunu silemiyor olabilir.

Ayrıca bkz.

Şunlara uygulanır

Delete(String, Boolean)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen dizini ve belirtilirse dizindeki tüm alt dizinleri ve dosyaları siler.

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)

Parametreler

path
String

Kaldırılacak dizinin adı.

recursive
Boolean

trueiçindeki dizinleri, alt dizinleri ve dosyaları pathkaldırmak için ; aksi takdirde . false

Özel durumlar

tarafından path belirtilen aynı ada ve konuma sahip bir dosya var.

-veya-

tarafından path belirtilen dizin salt okunur veya recursivefalsepath boş bir dizin değil.

-veya-

Dizin, uygulamanın geçerli çalışma dizinidir.

-veya-

Dizin salt okunur bir dosya içerir.

-veya-

Dizin başka bir işlem tarafından kullanılıyor.

Çağıranın gerekli izni yok.

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. GetInvalidPathChars() yöntemini kullanarak geçersiz karakterleri sorgulayabilirsiniz.

path, null'e eşittir.

Belirtilen yol, dosya adı veya her ikisi de sistem tanımlı uzunluk üst sınırını aşıyor.

path yok veya bulunamadı.

-veya-

Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).

Örnekler

Aşağıdaki örnekte, alt dizinde yeni bir dizin, alt dizin ve dosyanın nasıl oluşturulacağı ve ardından tüm yeni öğelerin özyinelemeli olarak nasıl silineceği gösterilmektedir.

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

Açıklamalar

path parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgileri geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz. GetCurrentDirectory.

Dizin silinmeden önce parametrenin sonundan path sondaki boşluklar kaldırılır.

parametresinin path büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemine karşılık gelir. Örneğin, NTFS'de (varsayılan Windows dosya sistemi) büyük/küçük harfe duyarlı değildir ve Linux dosya sistemlerinde büyük/küçük harfe duyarlıdır.

recursive parametresi isetrue, kullanıcının hem geçerli dizin hem de tüm alt dizinler için yazma izni olmalıdır.

Bu yöntemin davranışı, sembolik bağlantı veya bağlama noktası gibi yeniden ayrıştırma noktası içeren bir dizini silerken biraz farklılık gösterir. Yeniden ayrıştırma noktası bağlama noktası gibi bir dizinse, çıkarılmaz ve bağlama noktası silinir. Bu yöntem yeniden ayrıştırma noktası üzerinden yinelenmez. Yeniden ayrıştırma noktası bir dosyanın sembolik bağlantısıysa, yeniden ayrıştırma noktası silinir ve sembolik bağlantının hedefi değildir.

Bazı durumlarda, belirtilen dizini Dosya Gezgini'nde açtıysanız, Delete yöntemi bunu silemiyor olabilir.

Ayrıca bkz.

Şunlara uygulanır