Directory.Delete Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen dizini ve isteğe bağlı olarak tüm alt dizinleri siler.
Aşırı Yüklemeler
Delete(String) |
Belirtilen yoldan boş bir dizini siler. |
Delete(String, Boolean) |
Belirtilen dizini ve belirtilmişse dizindeki tüm alt dizinleri ve dosyaları siler. |
Delete(String)
- 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 belirtilen path
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. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.
path
, null
değeridir.
Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu 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 false
aynı şekilde Delete(String, Boolean) davranır.
path
parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .
Dizin silinmeden önce sondaki boşluklar parametrenin path
sonundan kaldırılır.
Bu yöntem, parametresinde path
belirtilen dizin dosyaları veya alt dizinleri içeriyorsa bir IOException oluşturur.
parametresinin path
büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemininkine 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'de 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
Belirtilen dizini ve belirtilmişse 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
true
içindeki dizinleri, alt dizinleri ve dosyaları path
kaldırmak için ; aksi takdirde . false
Özel durumlar
tarafından belirtilen path
aynı ada ve konuma sahip bir dosya var.
-veya-
tarafından path
belirtilen dizin salt okunur veya recursive
false
boş bir dizin değil.path
-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. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.
path
, null
değeridir.
Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.
path
yok veya bulunamadı.
-veya-
Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).
Örnekler
Aşağıdaki örnek, alt dizinde yeni bir dizin, alt dizin ve dosya oluşturmayı ve ardından tüm yeni öğeleri yinelemeli olarak silmeyi gösterir.
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 bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .
Dizin silinmeden önce sondaki boşluklar parametrenin path
sonundan kaldırılır.
parametresinin path
büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemininkine 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 iznine sahip olması gerekir.
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ılır 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, sembolik bağlantının hedefi değil yeniden ayrıştırma noktası silinir.
Bazı durumlarda, belirtilen dizini Dosya Gezgini'de açtıysanız, Delete yöntemi bunu silemiyor olabilir.