Share via


Directory Kelas

Definisi

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

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
Warisan
Directory
Atribut

Contoh

Contoh berikut menunjukkan cara mengambil semua file teks dari direktori dan memindahkannya ke direktori baru. Setelah file dipindahkan, file tersebut tidak lagi ada di direktori asli.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

Contoh berikut menunjukkan cara menggunakan EnumerateFiles metode untuk mengambil kumpulan file teks dari direktori, lalu menggunakan koleksi tersebut dalam kueri untuk menemukan semua baris yang berisi "Contoh".

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string archiveDirectory = @"C:\archive";

            var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(retrievedFile)
                        where line.Contains("Example")
                        select new
                        {
                            File = retrievedFile,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine("{0} contains {1}", f.File, f.Line);
            }
            Console.WriteLine("{0} lines found.", files.Count().ToString());
        }
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Module Module1

    Sub Main()
        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub

End Module

Contoh berikut menunjukkan cara memindahkan direktori dan semua filenya ke direktori baru. Direktori asli tidak lagi ada setelah dipindahkan.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Keterangan

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

Metode statis Directory kelas melakukan pemeriksaan keamanan pada semua metode. Jika Anda akan menggunakan kembali objek beberapa kali, pertimbangkan untuk menggunakan metode DirectoryInfo instans yang sesuai sebagai gantinya, karena pemeriksaan keamanan tidak akan selalu diperlukan.

Jika Anda hanya melakukan satu tindakan terkait direktori, mungkin lebih efisien untuk menggunakan metode statis Directory daripada metode instans yang sesuai DirectoryInfo . Sebagian besar Directory metode memerlukan jalur ke direktori yang Anda manipulasi.

Catatan

Dalam anggota yang menerima parameter string path , jalur tersebut harus terbentuk dengan baik atau pengecualian dinaikkan. Misalnya, jika jalur sepenuhnya memenuhi syarat tetapi dimulai dengan spasi (" c:\temp"), string jalur tidak dipangkas, sehingga jalur dianggap cacat dan pengecualian dinaikkan. Selain itu, jalur atau kombinasi jalur tidak dapat sepenuhnya memenuhi syarat dua kali. Misalnya, "c:\temp c:\windows" juga menimbulkan pengecualian. Pastikan jalur Anda terbentuk dengan baik saat menggunakan metode yang menerima string jalur. Untuk informasi selengkapnya, lihat Path.

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

  • "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. Namun, aplikasi harus memiliki keamanan yang benar untuk mengakses direktori yang ada.

Untuk meminta izin untuk direktori dan semua subdirektorinya, akhiri string jalur dengan karakter pemisah direktori. (Misalnya, "C:\Temp\" memberikan akses ke C:\Temp\ dan semua subdirektorinya.) Untuk meminta izin hanya untuk direktori tertentu, akhiri string jalur dengan titik. (Misalnya, "C:\Temp\." memberikan akses hanya ke C:\Temp\, bukan ke subdirektorinya.)

Dalam anggota yang menerima searchPattern parameter, string pencarian dapat berupa kombinasi karakter harfiah dan dua karakter kartubebas; * dan ?. Parameter ini tidak mengenali ekspresi reguler. Untuk informasi selengkapnya, lihat EnumerateDirectories(String, String) metode atau metode lain yang menggunakan searchPattern parameter .

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

Directory dan DirectoryInfo tidak didukung untuk digunakan di aplikasi Bursa Windows. Untuk informasi tentang cara mengakses file dan folder di aplikasi Bursa Windows, lihat Mengakses data dan file (aplikasi Windows Store).

Metode

CreateDirectory(String)

Membuat semua direktori dan subdirektori di jalur yang ditentukan kecuali sudah ada.

CreateDirectory(String, DirectorySecurity)

Membuat semua direktori di jalur yang ditentukan, kecuali sudah ada, menerapkan keamanan Windows yang ditentukan.

CreateDirectory(String, UnixFileMode)

Membuat semua direktori dan subdirektori di jalur yang ditentukan dengan izin yang ditentukan kecuali sudah ada.

CreateSymbolicLink(String, String)

Membuat tautan simbolis direktori yang diidentifikasi oleh path yang menunjuk ke pathToTarget.

CreateTempSubdirectory(String)

Membuat direktori kosong bernama unik di direktori sementara pengguna saat ini.

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.

EnumerateDirectories(String)

Mengembalikan kumpulan nama lengkap direktori yang dapat dijumlahkan dalam jalur tertentu.

EnumerateDirectories(String, String)

Mengembalikan kumpulan nama lengkap direktori yang dapat dijumlahkan yang cocok dengan pola pencarian dalam jalur yang ditentukan.

EnumerateDirectories(String, String, EnumerationOptions)

Mengembalikan kumpulan nama lengkap direktori yang dapat dijumlahkan yang cocok dengan pola pencarian dalam jalur tertentu, dan secara opsional mencari subdirektori.

EnumerateDirectories(String, String, SearchOption)

Mengembalikan kumpulan nama lengkap direktori yang dapat dijumlahkan yang cocok dengan pola pencarian dalam jalur tertentu, dan secara opsional mencari subdirektori.

EnumerateFiles(String)

Mengembalikan kumpulan nama file lengkap yang dapat dijumlahkan dalam jalur tertentu.

EnumerateFiles(String, String)

Mengembalikan kumpulan nama file lengkap yang dapat dijumlahkan yang cocok dengan pola pencarian dalam jalur tertentu.

EnumerateFiles(String, String, EnumerationOptions)

Mengembalikan kumpulan nama file lengkap yang dapat dijumlahkan yang cocok dengan pola pencarian dan opsi enumerasi dalam jalur tertentu, dan secara opsional mencari subdirektori.

EnumerateFiles(String, String, SearchOption)

Mengembalikan kumpulan nama file lengkap yang dapat dijumlahkan yang cocok dengan pola pencarian di jalur tertentu, dan secara opsional mencari subdirektori.

EnumerateFileSystemEntries(String)

Mengembalikan kumpulan nama file dan nama direktori yang dapat dijumlahkan dalam jalur tertentu.

EnumerateFileSystemEntries(String, String)

Mengembalikan kumpulan nama file dan nama direktori yang dapat dijumlahkan yang cocok dengan pola pencarian di jalur tertentu.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Mengembalikan kumpulan nama file dan nama direktori yang dapat dijumlahkan yang cocok dengan pola pencarian dan opsi enumerasi dalam jalur tertentu.

EnumerateFileSystemEntries(String, String, SearchOption)

Mengembalikan kumpulan nama file dan nama direktori yang dapat dijumlahkan yang cocok dengan pola pencarian di jalur tertentu, dan secara opsional mencari subdirektori.

Exists(String)

Menentukan apakah jalur yang diberikan mengacu pada direktori yang ada pada disk.

GetAccessControl(String)

DirectorySecurity Mendapatkan objek yang merangkum entri daftar kontrol akses (ACL) untuk direktori tertentu.

GetAccessControl(String, AccessControlSections)

DirectorySecurity Mendapatkan objek yang merangkum jenis entri daftar kontrol akses (ACL) yang ditentukan untuk direktori tertentu.

GetCreationTime(String)

Mendapatkan tanggal dan waktu pembuatan direktori.

GetCreationTimeUtc(String)

Mendapatkan tanggal dan waktu pembuatan, dalam format Waktu Universal Terkoordinasi (UTC), dari direktori.

GetCurrentDirectory()

Mendapatkan direktori kerja aplikasi saat ini.

GetDirectories(String)

Mengembalikan nama subdirektori (termasuk jalurnya) dalam direktori yang ditentukan.

GetDirectories(String, String)

Mengembalikan nama subdirektori (termasuk jalurnya) yang cocok dengan pola pencarian yang ditentukan dalam direktori yang ditentukan.

GetDirectories(String, String, EnumerationOptions)

Mengembalikan nama subdirektori (termasuk jalurnya) yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan dalam direktori yang ditentukan.

GetDirectories(String, String, SearchOption)

Mengembalikan nama subdirektori (termasuk jalurnya) yang cocok dengan pola pencarian yang ditentukan dalam direktori yang ditentukan, dan secara opsional mencari subdirektori.

GetDirectoryRoot(String)

Mengembalikan informasi volume, informasi akar, atau keduanya untuk jalur yang ditentukan.

GetFiles(String)

Mengembalikan nama file (termasuk jalurnya) dalam direktori yang ditentukan.

GetFiles(String, String)

Mengembalikan nama file (termasuk jalurnya) yang cocok dengan pola pencarian yang ditentukan dalam direktori yang ditentukan.

GetFiles(String, String, EnumerationOptions)

Mengembalikan nama file (termasuk jalurnya) yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan dalam direktori yang ditentukan.

GetFiles(String, String, SearchOption)

Mengembalikan nama file (termasuk jalurnya) yang cocok dengan pola pencarian yang ditentukan dalam direktori yang ditentukan, menggunakan nilai untuk menentukan apakah akan mencari subdirektori.

GetFileSystemEntries(String)

Mengembalikan nama semua file dan subdirektori dalam jalur yang ditentukan.

GetFileSystemEntries(String, String)

Mengembalikan array nama file dan nama direktori yang cocok dengan pola pencarian di jalur tertentu.

GetFileSystemEntries(String, String, EnumerationOptions)

Mengembalikan array nama file dan nama direktori yang cocok dengan pola pencarian dan opsi enumerasi dalam jalur tertentu.

GetFileSystemEntries(String, String, SearchOption)

Mengembalikan array dari semua nama file dan nama direktori yang cocok dengan pola pencarian di jalur tertentu, dan secara opsional mencari subdirektori.

GetLastAccessTime(String)

Mengembalikan tanggal dan waktu file atau direktori yang ditentukan terakhir diakses.

GetLastAccessTimeUtc(String)

Mengembalikan tanggal dan waktu, dalam format Waktu Universal Terkoordinasi (UTC), bahwa file atau direktori yang ditentukan terakhir diakses.

GetLastWriteTime(String)

Mengembalikan tanggal dan waktu file atau direktori yang ditentukan terakhir ditulis.

GetLastWriteTimeUtc(String)

Mengembalikan tanggal dan waktu, dalam format Waktu Universal Terkoordinasi (UTC), yang terakhir ditulis oleh file atau direktori yang ditentukan.

GetLogicalDrives()

Mengambil nama drive logis pada komputer ini dalam bentuk "<huruf> kandar:\".

GetParent(String)

Mengambil direktori induk dari jalur yang ditentukan, termasuk jalur absolut dan relatif.

Move(String, String)

Memindahkan file atau direktori dan isinya ke lokasi baru.

ResolveLinkTarget(String, Boolean)

Mendapatkan target tautan direktori yang ditentukan.

SetAccessControl(String, DirectorySecurity)

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

SetCreationTime(String, DateTime)

Mengatur tanggal dan waktu pembuatan untuk file atau direktori yang ditentukan.

SetCreationTimeUtc(String, DateTime)

Mengatur tanggal dan waktu pembuatan, dalam format Waktu Universal Terkoordinasi (UTC), untuk file atau direktori yang ditentukan.

SetCurrentDirectory(String)

Mengatur direktori kerja aplikasi saat ini ke direktori yang ditentukan.

SetLastAccessTime(String, DateTime)

Mengatur tanggal dan waktu file atau direktori yang ditentukan terakhir diakses.

SetLastAccessTimeUtc(String, DateTime)

Mengatur tanggal dan waktu, dalam format Waktu Universal Terkoordinasi (UTC), bahwa file atau direktori yang ditentukan terakhir diakses.

SetLastWriteTime(String, DateTime)

Mengatur tanggal dan waktu direktori terakhir ditulis.

SetLastWriteTimeUtc(String, DateTime)

Mengatur tanggal dan waktu, dalam format Waktu Universal Terkoordinasi (UTC), yang terakhir ditulis oleh direktori.

Berlaku untuk

Lihat juga