Directory.Delete Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menghapus direktori tertentu, dan secara opsional subdirektori apa pun.
Overload
Delete(String) |
Menghapus direktori kosong dari jalur tertentu. |
Delete(String, Boolean) |
Menghapus direktori yang ditentukan dan, jika ditunjukkan, subdirektori dan file apa pun di direktori. |
Delete(String)
- Sumber:
- Directory.cs
- Sumber:
- Directory.cs
- Sumber:
- Directory.cs
Menghapus direktori kosong dari jalur tertentu.
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)
Parameter
- path
- String
Nama direktori kosong yang akan dihapus. Direktori ini harus dapat ditulis dan kosong.
Pengecualian
File dengan nama dan lokasi yang sama yang ditentukan oleh path
ada.
-atau-
Direktori adalah direktori kerja aplikasi saat ini.
-atau-
Direktori yang ditentukan oleh path
tidak kosong.
-atau-
Direktori bersifat baca-saja atau berisi file baca-saja.
-atau-
Direktori sedang digunakan oleh proses lain.
Pemanggil tidak memiliki izin yang diperlukan.
versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path
adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid. Anda bisa mengkueri karakter yang tidak valid dengan menggunakan metode .GetInvalidPathChars()
path
adalah null
.
Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.
path
tidak ada atau tidak dapat ditemukan.
-atau-
Jalur yang ditentukan tidak valid (misalnya, ada di drive yang tidak dipetakan).
Contoh
Contoh berikut menunjukkan cara membuat direktori dan subdirektori baru, lalu hanya menghapus subdirektori.
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
Keterangan
Metode ini ber perilaku identik Delete(String, Boolean) dengan false
yang ditentukan untuk parameter kedua.
Parameter path
dapat menentukan informasi jalur relatif atau absolut. Informasi jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini. Untuk mendapatkan direktori kerja saat ini, lihat GetCurrentDirectory.
Spasi berikutnya dihapus dari akhir path
parameter sebelum menghapus direktori.
Metode ini melemparkan IOException jika direktori yang ditentukan dalam path
parameter berisi file atau subdirektori.
Sensitivitas path
huruf besar/kecil parameter sesuai dengan sistem file tempat kode berjalan. Misalnya, ini tidak peka huruf besar/kecil pada NTFS (sistem file Windows default) dan peka huruf besar/kecil pada sistem file Linux.
Dalam beberapa kasus, jika Anda membuka direktori yang ditentukan di File Explorer, Delete metode mungkin tidak dapat menghapusnya.
Lihat juga
Berlaku untuk
Delete(String, Boolean)
- Sumber:
- Directory.cs
- Sumber:
- Directory.cs
- Sumber:
- Directory.cs
Menghapus direktori yang ditentukan dan, jika ditunjukkan, subdirektori dan file apa pun di direktori.
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)
Parameter
- path
- String
Nama direktori yang akan dihapus.
- recursive
- Boolean
true
untuk menghapus direktori, subdirektori, dan file di path
; jika tidak, false
.
Pengecualian
File dengan nama dan lokasi yang sama yang ditentukan oleh path
ada.
-atau-
Direktori yang ditentukan oleh path
bersifat baca-saja, atau recursive
dan false
path
bukan direktori kosong.
-atau-
Direktori adalah direktori kerja aplikasi saat ini.
-atau-
Direktori berisi file baca-saja.
-atau-
Direktori sedang digunakan oleh proses lain.
Pemanggil tidak memiliki izin yang diperlukan.
versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path
adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid. Anda bisa mengkueri karakter yang tidak valid dengan menggunakan metode .GetInvalidPathChars()
path
adalah null
.
Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.
path
tidak ada atau tidak dapat ditemukan.
-atau-
Jalur yang ditentukan tidak valid (misalnya, ada di drive yang tidak dipetakan).
Contoh
Contoh berikut menunjukkan cara membuat direktori, subdirektori, dan file baru di subdirektori, lalu menghapus semua item baru secara rekursif.
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
Keterangan
Parameter path
dapat menentukan informasi jalur relatif atau absolut. Informasi jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini. Untuk mendapatkan direktori kerja saat ini, lihat GetCurrentDirectory.
Spasi berikutnya dihapus dari akhir path
parameter sebelum menghapus direktori.
Sensitivitas path
huruf besar/kecil parameter sesuai dengan sistem file tempat kode berjalan. Misalnya, ini tidak peka huruf besar/kecil pada NTFS (sistem file Windows default) dan peka huruf besar/kecil pada sistem file Linux.
recursive
Jika parameter adalah true
, pengguna harus memiliki izin tulis untuk direktori saat ini serta untuk semua subdirektori.
Perilaku metode ini sedikit berbeda saat menghapus direktori yang berisi titik pemilah ulang, seperti tautan simbolis atau titik pemasangan. Jika titik reparse adalah direktori, seperti titik pemasangan, titik pemasangan dilepas dan titik pemasangan dihapus. Metode ini tidak berulang melalui titik reparse. Jika titik reparse adalah tautan simbolis ke file, titik reparse dihapus dan bukan target tautan simbolis.
Dalam beberapa kasus, jika Anda membuka direktori yang ditentukan di File Explorer, Delete metode mungkin tidak dapat menghapusnya.