2011-09-28 13 views

risposta

7

Dai uno sguardo allo File.SetAttributes(). Ci sono molti esempi online su come usarlo.

Tratto da quella pagina MSDN:

FileAttributes attributes = File.GetAttributes(path); 

     if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden) 
     { 
      // Show the file. 
      attributes = RemoveAttribute(attributes, FileAttributes.Hidden); 
      File.SetAttributes(path, attributes); 
      Console.WriteLine("The {0} file is no longer hidden.", path); 
     } 
     else 
     { 
      // Hide the file. 
      File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden); 
      Console.WriteLine("The {0} file is now hidden.", path); 
     } 
2

Hai dimenticato di copiare nel metodo RemoveAttribute, che è:

private static FileAttributes RemoveAttribute(FileAttributes attributes, FileAttributes attributesToRemove) 
    { 
     return attributes & ~attributesToRemove; 
    } 
0

E 'per attributi (. Vedi jb di risposta) o delle autorizzazioni , cioè accesso in lettura/scrittura, ecc.? In quest'ultimo caso vedere File.SetAccessControl.

da MSDN:

// Get a FileSecurity object that represents the 
// current security settings. 
FileSecurity fSecurity = File.GetAccessControl(fileName); 

// Add the FileSystemAccessRule to the security settings. 
fSecurity.AddAccessRule(new FileSystemAccessRule(account, rights, controlType)); 

// Set the new access settings. 
File.SetAccessControl(fileName, fSecurity); 

Vedi How to grant full permission to a file created by my application for ALL users? per un esempio più concreto.

Nella domanda iniziale sembra che si desideri disabilitare il codice FileSystemRights.Delete.

Problemi correlati