Bekerja dengan jalur file di .NET
.NET memiliki mekanisme bawaan untuk bekerja dengan jalur sistem file.
Pada latihan sebelumnya, kami tidak memiliki banyak folder untuk diurai. Jika Anda memiliki sistem file dengan banyak file dan folder, membangun jalur secara manual bisa jadi membosankan. Untungnya, .NET menyediakan beberapa konstanta bawaan dan fungsi utilitas untuk memudahkan penanganan jalur file.
Di sini, Anda mempelajari tentang beberapa konstanta dan fungsi utilitas di System.IO
namespace dan System.Environment
jenisnya sehingga Anda dapat membuat program Anda lebih cerdas dan lebih tangguh.
Tentukan direktori saat ini
Terkadang, Anda tidak tahu di direktori atau jalur mana program Anda harus dijalankan. Katakanlah Anda ingin program yang menggunakan direktori saat ini, tetapi Anda tidak tahu jalurnya.
.NET memperlihatkan jalur lengkap ke direktori saat ini melalui metode Directory.GetCurrentDirectory
.
Console.WriteLine(Directory.GetCurrentDirectory());
Jika Anda menjalankan kode sebelumnya dari folder 201 dalam struktur berikut, Directory.GetCurrentDirectory()
mengembalikan stores\201
:
📂 stores
📂 201
Bekerja dengan direktori khusus
.NET berjalan di mana saja: di Windows, macOS, Linux, dan bahkan di sistem operasi seluler seperti iOS dan Android. Setiap sistem operasi mungkin atau mungkin tidak memiliki konsep folder sistem khusus (seperti direktori beranda—yang didedikasikan untuk file khusus pengguna—atau direktori desktop, atau direktori untuk menyimpan file sementara).
Jenis direktori khusus tersebut berbeda untuk setiap sistem operasi. Akan sulit untuk mencoba mengingat struktur direktori setiap sistem operasi dan melakukan peralihan berdasarkan OS saat ini.
Enumerasi System.Environment.SpecialFolder
menentukan konstanta untuk mengambil jalur ke folder sistem khusus.
Kode berikut mengembalikan jalur ke folder Windows My Documents yang setara, atau direktori HOME pengguna untuk sistem operasi apa pun, bahkan jika kode berjalan di Linux:
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
Bekerja dengan jalur
Jalur adalah subjek yang sering muncul sehingga .NET menyertakan kelas yang disebut Path
khususnya untuk bekerja dengannya.
Kelas Path
terletak di System.IO
namespace .NET, dan tidak perlu dipasang.
Karakter jalur khusus
Sistem operasi yang berbeda menggunakan karakter yang berbeda untuk memisahkan tingkat direktori.
Misalnya, Windows menggunakan garis miring terbalik (stores\201
) dan macOS menggunakan garis miring (stores/201
).
Untuk membantu Anda menggunakan karakter yang benar, kelas Path
berisi bidang DirectorySeparatorChar
.
.NET secara otomatis menafsirkan bidang itu ke dalam karakter pemisah yang berlaku untuk sistem operasi saat Anda perlu membuat jalur secara manual.
Console.WriteLine($"stores{Path.DirectorySeparatorChar}201");
// returns:
// stores\201 on Windows
//
// stores/201 on macOS
Gabung jalur
Kelas Path
bekerja dengan konsep jalur file dan folder, yang hanya berupa string. Anda dapat menggunakan kelas Path
guna membuat jalur yang benar secara otomatis untuk sistem operasi tertentu.
Misalnya, jika Anda ingin mendapatkan jalur ke folder stores/201, Anda dapat menggunakan fungsi Path.Combine
untuk melakukannya.
Console.WriteLine(Path.Combine("stores","201")); // outputs: stores/201
Ingat, Anda harus menggunakan Path.Combine
kelas atau Path.DirectorySeparatorChar
alih-alih string hard-coding, karena program Anda mungkin berjalan pada banyak sistem operasi yang berbeda. Kelas Path
selalu memformat jalur dengan benar untuk sistem operasi tempatnya berjalan.
Tip
Kelas Path
tidak peduli apakah sesuatu itu benar-benar ada. Jalur bersifat konseptual, bukan fisik, dan kelas sedang membuat dan mengurai string untuk Anda.
Tentukan ekstensi nama file
Kelas Path
juga dapat memberi tahu Anda ekstensi nama file. Jika Anda memiliki file dan ingin mengetahui apakah itu file JSON, Anda dapat menggunakan fungsi Path.GetExtension
.
Console.WriteLine(Path.GetExtension("sales.json")); // outputs: .json
Dapatkan semua yang perlu Anda ketahui tentang file atau jalur
Kelas Path
berisi banyak metode berbeda yang melakukan berbagai hal. Anda bisa mendapatkan informasi paling banyak tentang direktori atau file dengan menggunakan kelas DirectoryInfo
atau FileInfo
, berturut-turut.
string fileName = $"stores{Path.DirectorySeparatorChar}201{Path.DirectorySeparatorChar}sales{Path.DirectorySeparatorChar}sales.json";
FileInfo info = new FileInfo(fileName);
Console.WriteLine($"Full Name: {info.FullName}{Environment.NewLine}Directory: {info.Directory}{Environment.NewLine}Extension: {info.Extension}{Environment.NewLine}Create Date: {info.CreationTime}"); // And many more
Ada banyak properti dan metode utilitas yang lebih berguna pada Path
kelas , , DirectoryInfo
dan FileInfo
, tetapi konsep inti ini adalah yang paling sering Anda gunakan. Pada latihan berikutnya, Anda akan membuat jalur dan mengidentifikasi file .json.