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 namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew 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 0;
      }
      
      // 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 );
   }

}
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) == false)
        {
            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 instans Directory alih-alih DirectoryInfo metode statis kelas yang sesuai, karena pemeriksaan keamanan tidak akan selalu diperlukan.

Catatan

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, jalurnya 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 nama berbagi. Misalnya, semua 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

DirectoryInfo(String)

Menginisialisasi instans DirectoryInfo baru kelas pada jalur yang ditentukan.

Bidang

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

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 bahkan jika 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)
LinkTarget

Mendapatkan jalur target tautan yang terletak di FullName, atau null jika instans ini FileSystemInfo tidak mewakili tautan.

(Diperoleh dari FileSystemInfo)
Name

Mendapatkan nama instans ini DirectoryInfo .

Parent

Mendapatkan direktori induk dari subdirektori tertentu.

Root

Mendapatkan bagian akar direktori.

UnixFileMode

Mendapatkan atau mengatur mode file Unix untuk file atau direktori saat ini.

(Diperoleh dari FileSystemInfo)

Metode

Create()

Membuat direktori.

Create(DirectorySecurity)

Membuat direktori menggunakan DirectorySecurity objek .

CreateAsSymbolicLink(String)

Membuat tautan simbolis yang terletak di FullName yang menunjuk ke yang ditentukan pathToTarget.

(Diperoleh dari FileSystemInfo)
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)

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

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.

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 dalam direktori saat ini.

EnumerateDirectories(String)

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

EnumerateDirectories(String, EnumerationOptions)

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

EnumerateDirectories(String, SearchOption)

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

EnumerateFiles()

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

EnumerateFiles(String)

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

EnumerateFiles(String, EnumerationOptions)

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

EnumerateFiles(String, SearchOption)

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

EnumerateFileSystemInfos()

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

EnumerateFileSystemInfos(String)

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

EnumerateFileSystemInfos(String, EnumerationOptions)

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

EnumerateFileSystemInfos(String, SearchOption)

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

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 tipe entri daftar kontrol akses (ACL) yang ditentukan untuk direktori yang dijelaskan oleh objek saat iniDirectoryInfo.

GetDirectories()

Mengembalikan subdirektori direktori saat ini.

GetDirectories(String)

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

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.

GetFiles()

Mengembalikan daftar file dari direktori saat ini.

GetFiles(String)

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

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.

GetFileSystemInfos()

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

GetFileSystemInfos(String)

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

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.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()
Kedaluwarsa.

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

(Diperoleh dari MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

SerializationInfo Mengatur objek dengan nama file dan informasi pengecualian tambahan.

(Diperoleh dari FileSystemInfo)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

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

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(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)
ResolveLinkTarget(Boolean)

Mendapatkan target tautan yang ditentukan.

(Diperoleh dari FileSystemInfo)
SetAccessControl(DirectorySecurity)

Menerapkan entri daftar kontrol akses (ACL) yang DirectorySecurity dijelaskan oleh objek ke direktori yang 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.

ToString()

Mengembalikan jalur asli. FullName Gunakan properti atau Name untuk jalur lengkap atau nama file/direktori.

(Diperoleh dari FileSystemInfo)

Metode Ekstensi

Create(DirectoryInfo, DirectorySecurity)

Membuat direktori baru, memastikannya dibuat dengan keamanan direktori yang ditentukan. Jika direktori sudah ada, tidak ada yang dilakukan.

GetAccessControl(DirectoryInfo)

Mengembalikan informasi keamanan direktori.

GetAccessControl(DirectoryInfo, AccessControlSections)

Mengembalikan informasi keamanan direktori.

SetAccessControl(DirectoryInfo, DirectorySecurity)

Mengubah atribut keamanan direktori yang ada.

Berlaku untuk

Lihat juga