Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Semak Kebenaran Menulis Fail secara Pengaturcaraan dalam .NET Sebelum Cuba Menulis?

Bagaimana Saya Boleh Semak Kebenaran Menulis Fail secara Pengaturcaraan dalam .NET Sebelum Cuba Menulis?

Patricia Arquette
Patricia Arquetteasal
2025-01-04 12:47:40952semak imbas

How Can I Programmatically Check File Write Permissions in .NET Before Attempting to Write?

Menyemak Kebenaran untuk Penulisan Fail dalam .NET

Kod anda mengalami ralat dinafikan akses semasa cuba menulis pada fail. Ralat ini berlaku apabila program anda tidak mempunyai kebenaran yang diperlukan untuk mengubah suai fail atau direktori yang ditentukan.

Untuk menyelesaikan ralat ini, anda boleh melaksanakan blok kod untuk menangkap pengecualian ini. Selain itu, anda boleh menggunakan ruang nama Keselamatan untuk mengesahkan kebenaran menulis bagi fail.

Berikut ialah versi terkini kod anda yang menyemak kebenaran menulis dan mengendalikan ralat:

public void ExportToFile(string filename)
{
  var permissionSet = new PermissionSet(PermissionState.None);    
  var writePermission = new FileIOPermission(FileIOPermissionAccess.Write, filename);
  permissionSet.AddPermission(writePermission);

  if (permissionSet.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet))
  {
    using (FileStream fstream = new FileStream(filename, FileMode.Create))
    using (TextWriter writer = new StreamWriter(fstream))
    {
      // try catch block for write permissions 
      writer.WriteLine("sometext");
    }
  }
  else
  {
    // Handle write permissions not granted error
  }
}

Walau bagaimanapun , adalah penting untuk ambil perhatian bahawa anda tidak boleh memberikan kebenaran menulis secara pemrograman kepada fail atau direktori. Tindakan ini memerlukan campur tangan pengguna, seperti menukar kebenaran fail secara manual dalam sistem pengendalian atau menjalankan program dengan keistimewaan yang tinggi.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Semak Kebenaran Menulis Fail secara Pengaturcaraan dalam .NET Sebelum Cuba Menulis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Mengapa C Tidak Ada Refleksi?Artikel seterusnya:Mengapa C Tidak Ada Refleksi?