Directory.Delete Metoda

Definicja

Usuwa określony katalog i opcjonalnie wszystkie podkatalogi.Deletes a specified directory, and optionally any subdirectories.

Przeciążenia

Delete(String)

Usuwa pusty katalog z określonej ścieżki.Deletes an empty directory from a specified path.

Delete(String, Boolean)

Usuwa określony katalog i, jeśli to wskazane, wszystkie podkatalogi i pliki w katalogu.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

Delete(String)

Usuwa pusty katalog z określonej ścieżki.Deletes an empty directory from a specified path.

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)

Parametry

path
String

Nazwa pustego katalogu do usunięcia.The name of the empty directory to remove. Ten katalog musi być zapisywalny i pusty.This directory must be writable and empty.

Wyjątki

Istnieje plik o tej samej nazwie i lokalizacji określonej przez path.A file with the same name and location specified by path exists.

lub-or- Katalog jest bieżącym katalogiem roboczym aplikacji.The directory is the application's current working directory.

lub-or- Katalog określony przez path nie jest pusty.The directory specified by path is not empty.

lub-or- Katalog jest tylko do odczytu lub zawiera plik tylko do odczytu.The directory is read-only or contains a read-only file.

lub-or- Katalog jest używany przez inny proces.The directory is being used by another process.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

Parametr path ma wartość null.path is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

path nie istnieje lub nie można go znaleźć.path does not exist or could not be found.

lub-or- Określona ścieżka jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The specified path is invalid (for example, it is on an unmapped drive).

Przykłady

Poniższy przykład pokazuje, jak utworzyć nowy katalog i podkatalog, a następnie usunąć tylko podkatalog.The following example shows how to create a new directory and subdirectory, and then delete only the subdirectory.

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);
            }
        }
    }
}
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

Uwagi

Ta metoda zachowuje się tak samo Delete(String, Boolean) z false określonych dla drugiego parametru.This method behaves identically to Delete(String, Boolean) with false specified for the second parameter.

Parametr path może określać informacje o ścieżce względnej lub bezwzględnej.The path parameter may specify relative or absolute path information. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego.Relative path information is interpreted as relative to the current working directory. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

Spacje końcowe są usuwane z końca parametru path przed usunięciem katalogu.Trailing spaces are removed from the end of the path parameter before deleting the directory.

Ta metoda zgłasza IOException, jeśli katalog określony w parametrze path zawiera pliki lub podkatalogi.This method throws an IOException if the directory specified in the path parameter contains files or subdirectories.

W parametrze path nie jest rozróżniana wielkość liter.The path parameter is not case-sensitive.

W niektórych przypadkach, jeśli w Eksploratorze plików jest otwarty określony katalog, Metoda Delete może nie być w stanie jej usunąć.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

Zabezpieczenia

FileIOPermission
do zapisu w określonym katalogu.for writing to the specified directory. Skojarzone Wyliczenie: WriteAssociated enumeration: Write

Zobacz też

Delete(String, Boolean)

Usuwa określony katalog i, jeśli to wskazane, wszystkie podkatalogi i pliki w katalogu.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

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)

Parametry

path
String

Nazwa katalogu do usunięcia.The name of the directory to remove.

recursive
Boolean

true usuwania katalogów, podkatalogów i plików w path; w przeciwnym razie false.true to remove directories, subdirectories, and files in path; otherwise, false.

Wyjątki

Istnieje plik o tej samej nazwie i lokalizacji określonej przez path.A file with the same name and location specified by path exists.

lub-or- Katalog określony przez path jest tylko do odczytu lub recursive jest false i path nie jest pustym katalogiem.The directory specified by path is read-only, or recursive is false and path is not an empty directory.

lub-or- Katalog jest bieżącym katalogiem roboczym aplikacji.The directory is the application's current working directory.

lub-or- Katalog zawiera plik tylko do odczytu.The directory contains a read-only file.

lub-or- Katalog jest używany przez inny proces.The directory is being used by another process.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

Parametr path ma wartość null.path is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

path nie istnieje lub nie można go znaleźć.path does not exist or could not be found.

lub-or- Określona ścieżka jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The specified path is invalid (for example, it is on an unmapped drive).

Przykłady

Poniższy przykład pokazuje, jak utworzyć nowy katalog, podkatalog i plik w podkatalogu, a następnie rekursywnie usunąć wszystkie nowe elementy.The following example shows how to create a new directory, subdirectory, and file in the subdirectory, and then recursively delete all the new items.

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);
            }
        }
    }
}
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

Uwagi

Parametr path może określać informacje o ścieżce względnej lub bezwzględnej.The path parameter may specify relative or absolute path information. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego.Relative path information is interpreted as relative to the current working directory. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

Spacje końcowe są usuwane z końca parametru path przed usunięciem katalogu.Trailing spaces are removed from the end of the path parameter before deleting the directory.

W parametrze path nie jest rozróżniana wielkość liter.The path parameter is not case-sensitive.

Jeśli parametr recursive jest true, użytkownik musi mieć uprawnienia do zapisu w bieżącym katalogu, a także dla wszystkich podkatalogów.If the recursive parameter is true, the user must have write permission for the current directory as well as for all subdirectories.

Zachowanie tej metody różni się nieco w przypadku usuwania katalogu, który zawiera punkt ponownej analizy, takiego jak link symboliczny lub punkt instalacji.The behavior of this method differs slightly when deleting a directory that contains a reparse point, such as a symbolic link or a mount point. Jeśli punkt ponownej analizy jest katalogiem, takim jak punkt instalacji, jest odinstalowywany, a punkt instalacji zostaje usunięty.If the reparse point is a directory, such as a mount point, it is unmounted and the mount point is deleted. Ta metoda nie powtarza się za pomocą punktu ponownej analizy.This method does not recurse through the reparse point. Jeśli punkt ponownej analizy jest linkiem symbolicznym do pliku, punkt ponownej analizy jest usuwany, a nie obiektem docelowym linku symbolicznego.If the reparse point is a symbolic link to a file, the reparse point is deleted and not the target of the symbolic link.

W niektórych przypadkach, jeśli w Eksploratorze plików jest otwarty określony katalog, Metoda Delete może nie być w stanie jej usunąć.In some cases, if you have the specified directory open in File Explorer, the Delete method may not be able to delete it.

Zabezpieczenia

FileIOPermission
do zapisu w określonym katalogu.for writing to the specified directory. Skojarzone Wyliczenie: WriteAssociated enumeration: Write

Zobacz też

Dotyczy