Berkas uji coba, hasil ekspor sementara, dan file kerja aplikasi tidak sebaiknya memenuhi folder proyek. Setiap sistem operasi menyediakan folder khusus untuk data sementara — /tmp pada Linux, %TEMP% pada Windows — dan .NET mengeksposnya lewat Path.GetTempPath. Isi folder ini dianggap sekali pakai; sistem operasi atau administrator bebas membersihkannya kapan saja, sehingga data penting tidak boleh disimpan di sana.

Tiga Bantuan dari .NET #

APIPerilaku
Path.GetTempPath()mengembalikan lokasi folder sementara sebagai string
Path.GetTempFileName()membuat berkosong berkas 0 byte bernama unik, lalu mengembalikan path-nya
Directory.CreateTempSubdirectory(prefix)membuat folder unik berawalan prefix (.NET 7+), mengembalikan DirectoryInfo

Perbedaan penting: GetTempFileName benar-benar membuat berkas di disk, sedangkan CreateTempSubdirectory membuat folder yang terjamin unik berkat akhiran acak. Keduanya wajib dihapus oleh program kita sendiri setelah selesai dipakai, karena tidak ada jaminan sistem operasi membersihkannya dengan segera.

Contoh Membuat dan Membersihkan #

Contoh berikut membuat berkas temporer, mengisinya, menghapusnya, lalu membuat dan menghapus folder temporer berawalan:

csharp
Console.WriteLine($"Folder temporer: {Path.GetTempPath()}");

string fileTemp = Path.GetTempFileName();
Console.WriteLine($"Ukuran awal: {new FileInfo(fileTemp).Length} byte");
File.WriteAllText(fileTemp, "data sementara");
Console.WriteLine($"Setelah ditulis: {new FileInfo(fileTemp).Length} byte");
File.Delete(fileTemp);

DirectoryInfo folderKerja = Directory.CreateTempSubdirectory("tutor-");
Console.WriteLine($"Folder unik dibuat: {folderKerja.Exists}");
Console.WriteLine($"Berawalan 'tutor-': {folderKerja.Name.StartsWith("tutor-")}");
folderKerja.Delete(recursive: true);

Output yang Dihasilkan:

text
Folder temporer: /tmp/
Ukuran awal: 0 byte
Setelah ditulis: 14 byte
Folder unik dibuat: True
Berawalan 'tutor-': True

Mari kita bedah baris demi baris:

  1. Path.GetTempPath(): mengembalikan /tmp/ pada Linux; pada Windows hasilnya berupa jalur folder %TEMP% pengguna.
  2. Path.GetTempFileName(): membuat berkas 0 byte dengan nama unik berpola tmpXXXX.tmp, sekaligus mengembalikan path lengkapnya.
  3. WriteAllText dan Delete: berkas diisi 14 byte lalu dibersihkan oleh program sendiri, tanpa menunggu sistem operasi.
  4. Directory.CreateTempSubdirectory("tutor-"): membuat folder unik berawalan tutor-; Delete(recursive: true) menghapusnya beserta seluruh isinya.