DirectoryInfo Kelas

Definisi

Mengekspos metode instans untuk membuat, memindahkan, dan menghitung melalui direktori dan subdirektori. Kelas ini tidak dapat diwariskan.

public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
Warisan
DirectoryInfo
Warisan
Atribut

Contoh

Contoh berikut menunjukkan beberapa anggota DirectoryInfo utama kelas.

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
        try
        {
            // Determine whether the directory exists.
            if (di.Exists)
            {
                // Indicate that the directory already exists.
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}
open System.IO

// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
    // Determine whether the directory exists.
    if di.Exists then
        // Indicate that the directory already exists.
        printfn "That path exists already."
    else
        // Try to create the directory.
        di.Create()
        printfn "The directory was created successfully."

        // Delete the directory.
        di.Delete()
        printfn "The directory was deleted successfully."
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

Contoh berikut menunjukkan cara menyalin direktori dan kontennya.

using System;
using System.IO;

class CopyDir
{
    public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {
        if (source.FullName.ToLower() == target.FullName.ToLower())
        {
            return;
        }

        // Check if the target directory exists, if not, create it.
        if (!Directory.Exists(target.FullName))
        {
            Directory.CreateDirectory(target.FullName);
        }

        // Copy each file into it's new directory.
        foreach (FileInfo fi in source.GetFiles())
        {
            Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
        }

        // Copy each subdirectory using recursion.
        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
        {
            DirectoryInfo nextTargetSubDir =
                target.CreateSubdirectory(diSourceSubDir.Name);
            CopyAll(diSourceSubDir, nextTargetSubDir);
        }
    }

    public static void Main()
    {
        string sourceDirectory = @"c:\sourceDirectory";
        string targetDirectory = @"c:\targetDirectory";

        DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
        DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);

        CopyAll(diSource, diTarget);
    }

    // Output will vary based on the contents of the source directory.
}
open System.IO

let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
    if source.FullName.ToLower() <> target.FullName.ToLower() then
        // Check if the target directory exists, if not, create it.
        if not (Directory.Exists target.FullName) then
            Directory.CreateDirectory target.FullName |> ignore

        // Copy each file into it's new directory.
        for fi in source.GetFiles() do
            printfn $@"Copying {target.FullName}\{fi.Name}"
            fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore

        // Copy each subdirectory using recursion.
        for diSourceSubDir in source.GetDirectories() do
            target.CreateSubdirectory diSourceSubDir.Name
            |> copyAll diSourceSubDir

let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"

let diSource = DirectoryInfo sourceDirectory
let diTarget = DirectoryInfo targetDirectory

copyAll diSource diTarget

// Output will vary based on the contents of the source directory.
Imports System.IO

Class CopyDir
    Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
        If (source.FullName.ToLower() = target.FullName.ToLower()) Then
            Return
        End If

        ' Check if the target directory exists, if not, create it.
        If Directory.Exists(target.FullName) = False Then
            Directory.CreateDirectory(target.FullName)
        End If

        ' Copy each file into it's new directory.
        For Each fi As FileInfo In source.GetFiles()
            Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
        Next

        ' Copy each subdirectory using recursion.
        For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
            Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
            CopyAll(diSourceSubDir, nextTargetSubDir)
        Next
    End Sub

    Shared Sub Main()
        Dim sourceDirectory As String = "c:\\sourceDirectory"
        Dim targetDirectory As String = "c:\\targetDirectory"

        Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
        Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)

        CopyAll(diSource, diTarget)
    End Sub
    ' Output will vary based on the contents of the source directory.
End Class

Keterangan

DirectoryInfo Gunakan kelas untuk operasi umum seperti menyalin, memindahkan, mengganti nama, membuat, dan menghapus direktori.

Jika Anda akan menggunakan kembali objek beberapa kali, pertimbangkan untuk menggunakan metode DirectoryInfo instans Directory alih-alih metode statis kelas yang sesuai, karena pemeriksaan keamanan tidak akan selalu diperlukan.

Nota

Dalam anggota yang menerima jalur sebagai string input, jalur tersebut harus terbentuk dengan baik atau pengecualian dinaikkan. Misalnya, jika jalur sepenuhnya memenuhi syarat tetapi dimulai dengan spasi, jalur tidak dipangkas dalam metode kelas. Oleh karena itu, jalur cacat dan pengecualian dinaikkan. Demikian pula, jalur atau kombinasi jalur tidak dapat sepenuhnya memenuhi syarat dua kali. Misalnya, "c:\temp c:\windows" juga menimbulkan pengecualian dalam banyak kasus. Pastikan jalur Anda terbentuk dengan baik saat menggunakan metode yang menerima string jalur.

Di anggota yang menerima jalur, jalur dapat merujuk ke file atau hanya direktori. Jalur yang ditentukan juga dapat merujuk ke jalur relatif atau jalur Universal Naming Convention (UNC) untuk server dan berbagi nama. Misalnya, semua yang berikut ini adalah jalur yang dapat diterima:

  • "c:\\MyDir\\MyFile.txt" di C#, atau "c:\MyDir\MyFile.txt" di Visual Basic.

  • "c:\\MyDir" di C#, atau "c:\MyDir" di Visual Basic.

  • "MyDir\\MySubdir" di C#, atau "MyDir\MySubDir" di Visual Basic.

  • "\\\MyServer\\MyShare" di C#, atau "\\MyServer\MyShare" di Visual Basic.

Secara default, akses baca/tulis penuh ke direktori baru diberikan kepada semua pengguna.

Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.

Konstruktor

Nama Deskripsi
DirectoryInfo(String)

Menginisialisasi instans DirectoryInfo baru kelas pada jalur yang ditentukan.

Bidang

Nama Deskripsi
FullPath

Mewakili jalur direktori atau file yang sepenuhnya memenuhi syarat.

(Diperoleh dari FileSystemInfo)
OriginalPath

Jalur awalnya ditentukan oleh pengguna, baik relatif atau absolut.

(Diperoleh dari FileSystemInfo)

Properti

Nama Deskripsi
Attributes

Mendapatkan atau mengatur atribut untuk file atau direktori saat ini.

(Diperoleh dari FileSystemInfo)
CreationTime

Mendapatkan atau mengatur waktu pembuatan file atau direktori saat ini.

(Diperoleh dari FileSystemInfo)
CreationTimeUtc

Mendapatkan atau mengatur waktu pembuatan, dalam waktu universal terkoordinasi (UTC), dari file atau direktori saat ini.

(Diperoleh dari FileSystemInfo)
Exists

Mendapatkan nilai yang menunjukkan apakah direktori ada.

Extension

Mendapatkan bagian ekstensi dari nama file, termasuk titik . di depan meskipun itu adalah seluruh nama file, atau string kosong jika tidak ada ekstensi.

(Diperoleh dari FileSystemInfo)
FullName

Mendapatkan jalur lengkap direktori.

FullName

Mendapatkan jalur lengkap direktori atau file.

(Diperoleh dari FileSystemInfo)
LastAccessTime

Mendapatkan atau mengatur waktu file atau direktori saat ini terakhir diakses.

(Diperoleh dari FileSystemInfo)
LastAccessTimeUtc

Mendapatkan atau mengatur waktu, dalam waktu universal terkoordinasi (UTC), bahwa file atau direktori saat ini terakhir diakses.

(Diperoleh dari FileSystemInfo)
LastWriteTime

Mendapatkan atau mengatur waktu ketika file atau direktori saat ini terakhir ditulis.

(Diperoleh dari FileSystemInfo)
LastWriteTimeUtc

Mendapatkan atau mengatur waktu, dalam waktu universal terkoordinasi (UTC), ketika file atau direktori saat ini terakhir ditulis.

(Diperoleh dari FileSystemInfo)
Name

Mendapatkan nama instans ini DirectoryInfo .

Parent

Mendapatkan direktori induk dari subdirektori tertentu.

Root

Mendapatkan bagian akar direktori.

Metode

Nama Deskripsi
Create()

Membuat direktori.

Create(DirectorySecurity)

Membuat direktori menggunakan DirectorySecurity objek.

CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
CreateSubdirectory(String, DirectorySecurity)

Membuat subdirektori atau subdirektori pada jalur yang ditentukan dengan keamanan yang ditentukan. Jalur yang ditentukan dapat relatif terhadap instans DirectoryInfo kelas ini.

CreateSubdirectory(String)

Membuat subdirektori atau subdirektori pada jalur yang ditentukan. Jalur yang ditentukan dapat relatif terhadap instans DirectoryInfo kelas ini.

Delete()

Menghapus ini DirectoryInfo jika kosong.

Delete(Boolean)

Menghapus instans ini dari DirectoryInfo, menentukan apakah akan menghapus subdirektori dan file.

EnumerateDirectories()

Mengembalikan kumpulan informasi direktori yang dapat dijumlahkan di direktori saat ini.

EnumerateDirectories(String, EnumerationOptions)

Mengembalikan kumpulan informasi direktori yang dapat dihitung yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan.

EnumerateDirectories(String, SearchOption)

Mengembalikan kumpulan informasi direktori yang dapat dihitung yang cocok dengan pola pencarian tertentu dan opsi subdirektori pencarian.

EnumerateDirectories(String)

Mengembalikan kumpulan informasi direktori yang dapat dihitung yang cocok dengan pola pencarian tertentu.

EnumerateFiles()

Mengembalikan kumpulan informasi file yang dapat dijumlahkan di direktori saat ini.

EnumerateFiles(String, EnumerationOptions)

Mengembalikan kumpulan informasi file yang dapat dihitung yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan.

EnumerateFiles(String, SearchOption)

Mengembalikan kumpulan informasi file yang dapat dihitung yang cocok dengan pola pencarian tertentu dan opsi subdirektori pencarian.

EnumerateFiles(String)

Mengembalikan kumpulan informasi file yang dapat dijumlahkan yang cocok dengan pola pencarian.

EnumerateFileSystemInfos()

Mengembalikan kumpulan informasi sistem file yang dapat dijumlahkan di direktori saat ini.

EnumerateFileSystemInfos(String, EnumerationOptions)

Mengembalikan kumpulan informasi sistem file yang dapat dihitung yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan.

EnumerateFileSystemInfos(String, SearchOption)

Mengembalikan kumpulan informasi sistem file yang dapat dihitung yang cocok dengan pola pencarian tertentu dan opsi subdirektori pencarian.

EnumerateFileSystemInfos(String)

Mengembalikan kumpulan informasi sistem file yang dapat dihitung yang cocok dengan pola pencarian tertentu.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetAccessControl()

DirectorySecurity Mendapatkan objek yang merangkum entri daftar kontrol akses (ACL) untuk direktori yang dijelaskan oleh objek saat iniDirectoryInfo.

GetAccessControl(AccessControlSections)

DirectorySecurity Mendapatkan objek yang merangkum jenis entri daftar kontrol akses (ACL) yang ditentukan untuk direktori yang dijelaskan oleh objek saat iniDirectoryInfo.

GetDirectories()

Mengembalikan subdirektori direktori saat ini.

GetDirectories(String, EnumerationOptions)

Mengembalikan array direktori dalam pencocokan pola pencarian dan opsi enumerasi yang ditentukan saat ini DirectoryInfo .

GetDirectories(String, SearchOption)

Mengembalikan array direktori dalam pencocokan kriteria pencarian yang diberikan saat ini DirectoryInfo dan menggunakan nilai untuk menentukan apakah akan mencari subdirektori.

GetDirectories(String)

Mengembalikan array direktori dalam pencocokan saat ini DirectoryInfo dengan kriteria pencarian yang diberikan.

GetFiles()

Mengembalikan daftar file dari direktori saat ini.

GetFiles(String, EnumerationOptions)

Mengembalikan daftar file dari direktori saat ini yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan.

GetFiles(String, SearchOption)

Mengembalikan daftar file dari direktori saat ini yang cocok dengan pola pencarian yang diberikan dan menggunakan nilai untuk menentukan apakah akan mencari subdirektori.

GetFiles(String)

Mengembalikan daftar file dari direktori saat ini yang cocok dengan pola pencarian yang diberikan.

GetFileSystemInfos()

Mengembalikan array entri yang sangat ditik yang mewakili semua file dan subdirektori FileSystemInfo dalam direktori.

GetFileSystemInfos(String, EnumerationOptions)

Mengambil array objek yang ditik FileSystemInfo dengan kuat yang mewakili file dan subdirektori yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan.

GetFileSystemInfos(String, SearchOption)

Mengambil array FileSystemInfo objek yang mewakili file dan subdirektori yang cocok dengan kriteria pencarian yang ditentukan.

GetFileSystemInfos(String)

Mengambil array objek yang ditik dengan kuat yang mewakili file dan subdirektori FileSystemInfo yang cocok dengan kriteria pencarian yang ditentukan.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo Mengatur objek dengan nama file dan informasi pengecualian tambahan.

(Diperoleh dari FileSystemInfo)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
MoveTo(String)

Memindahkan instans DirectoryInfo dan kontennya ke jalur baru.

Refresh()

Menyegarkan status objek.

(Diperoleh dari FileSystemInfo)
SetAccessControl(DirectorySecurity)

Menerapkan entri daftar kontrol akses (ACL) yang dijelaskan oleh objek ke direktori yang DirectorySecurity dijelaskan oleh objek saat ini DirectoryInfo .

ToString()

Mengembalikan jalur asli yang diteruskan ke DirectoryInfo konstruktor. FullName Gunakan properti atau Name untuk jalur lengkap atau nama file/direktori alih-alih metode ini.

Berlaku untuk

Lihat juga