---
title: "How do you set file permissions or access control lists (ACLs) in C#?"  
description: "How do you set file permissions or access control lists (ACLs) in C#?"  
author: "ICSM Computer"  
published: 2025-05-13  
updated: 2025-05-26  
canonical: https://www.mindstick.com/forum/161612/how-do-you-set-file-permissions-or-access-control-lists-acls-in-c-sharp  
category: "c#"  
tags: ["c#", "file handling"]  
reading_time: 2 minutes  

---

# How do you set file permissions or access control lists (ACLs) in C#?

How do you set [file](https://www.mindstick.com/articles/59/encrypting-and-decrypting-files-using-c-sharp) permissions or [access control](https://www.mindstick.com/forum/158579/how-does-the-dot-net-framework-provide-support-for-security-and-access-control) [lists](https://www.mindstick.com/articles/126273/books-commonly-found-on-college-reading-lists) (ACLs) in C#?

## Replies

### Reply by Anubhav Sharma

To set **file permissions** or **[Access](https://www.mindstick.com/articles/12994/how-foreigners-can-access-blocked-websites-in-china) [Control](https://www.mindstick.com/blog/197/asp-dot-net-repeater-control) Lists (ACLs)** in C#, you use classes from the `System.Security.AccessControl` namespace.

### Example: Grant Read and Write Permissions to a Specific User

```cs
using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;

public class FilePermissionHelper
{
    public static void SetFilePermissions(string filePath, string userName)
    {
        FileSecurity fileSecurity = File.GetAccessControl(filePath);

        // Create a new rule granting read and write access
        FileSystemAccessRule accessRule = new FileSystemAccessRule(
            userName,
            FileSystemRights.Read | FileSystemRights.Write,
            AccessControlType.Allow
        );

        // Add the rule and apply it
        fileSecurity.AddAccessRule(accessRule);
        File.SetAccessControl(filePath, fileSecurity);
    }
}
```

### Usage

```cs
string file = @"C:\secure\file.txt";
string user = @"DOMAIN\UserName"; // or use Environment.UserName

FilePermissionHelper.SetFilePermissions(file, user);
```

### Key Concepts

| Class | Purpose |
| --- | --- |
| `FileSecurity` | Represents the ACL for a file |
| `FileSystemAccessRule` | Defines access rules (who, what rights) |
| `AccessControlType` | `Allow` or `Deny` |
| `FileSystemRights` | Enum for specific rights (e.g. Read, Write, Modify, FullControl) |

### To Remove or Modify Permissions

Use `RemoveAccessRule`, `ResetAccessRule`, or `SetAccessRule` on the `FileSecurity` object.

### Notes

1. Your application needs permission to change ACLs (run as administrator if needed).
2. Works on NTFS file systems where ACLs are supported.
3. Use `DirectorySecurity` and `Directory.SetAccessControl` for folders.


---

Original Source: https://www.mindstick.com/forum/161612/how-do-you-set-file-permissions-or-access-control-lists-acls-in-c-sharp

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
