2012-08-02 20 views
6

Estoy usando la clase C# StreamWritier. Preguntas:¿Cómo hacer un archivo de "solo lectura"?

  1. ¿Cómo puedo hacer que un archivo sea de solo lectura, para que nadie pueda eliminarlo o escribir en él?
  2. ¿Cómo puedo hacer un archivo oculto?

estoy creando el archivo de esta manera:

private void button1_Click(object sender, EventArgs e) 
    { 
     SaveFileDialog save = new SaveFileDialog(); 
     save.FileName = textBox1.Text; 
     save.Filter = "Text File | *.rtf"; 


     if (save.ShowDialog() == DialogResult.OK) 
     { 
      StreamWriter writer = new StreamWriter(save.OpenFile()); 
      writer.WriteLine(textBox2.Text); 
     } 

     writer.Dispose(); 
     writer.Close(); 
    } 
+0

Puede consultar esa publicación: http://stackoverflow.com/a/5398398/1252575 Aquí hay otro: http://stackoverflow.com/questions/7590446/set-file-permissions-inc-c- sharp – Nickon

+0

@peer no acepto su edición porque modificó mi código y eliminó una de mi pregunta. –

+0

@Nickon el usuario par editó mi pregunta, también tiene una segunda parte. –

Respuesta

8

Hola se puede tratar con este método

public static void SetFileReadAccess(string FileName, bool SetReadOnly) 
{ 
     FileInfo fInfo = new FileInfo(FileName); 

     // Set the IsReadOnly property. 
     fInfo.IsReadOnly = SetReadOnly; 

} 
File.SetAttributes(yourFilePath, FileAttributes.Hidden); 

......

+0

Yakoub puede verificar la segunda parte de mi pregunta, por favor alguien editó y eliminó la segunda parte, por lo que he vuelto a editar Gracias. por cierto, voté por todos ustedes. –

+0

Modesto de agradecimiento Agregué la segunda respuesta –

+0

gracias solo sangré con el código del primer anwer para que otras personas puedan leer también. Gracias. Acepté tu respuesta. –

4

puede establecer el atributo de sólo lectura utilizando File.SetAttributes.

Ejemplo:

File.SetAttributes(textBox1.Text, FileAttributes.ReadOnly); 

cuenta que esto sólo establece el indicador de sólo lectura, que no modifica las listas de control de acceso NTFS (lo que significa que cada usuario experto puede quitar el atributo de sólo lectura). Tenga en cuenta también que esto restablece todos los demás atributos del archivo, lo que no debería ser un problema en su caso, ya que está creando un nuevo archivo de todos modos. Si necesita conservar los atributos existentes, primero use File.GetAttributes y combine los indicadores existentes con el nuevo (consulte el ejemplo en la página de MSDN vinculada).


Si necesita seguro el archivo contra escritura attemts maliciosos, que imprescindible entender la seguridad NTFS (Google de "seguridad de NTFS" para un montón de recursos). Una vez que entienda que, la siguiente pregunta le dirá cómo modificarlos en C#:

+0

¿cómo lo usaré y lo haré? es posible mostrar en mi código? –

+0

sí gracias Heinzi ya veo. Te respondí antes de editar tu respuesta, creo. –

+0

mi pregunta fue editada por un compañero y él borró mi segunda parte de la pregunta, así que volví a editar ¿tiene algo que decir para la segunda pregunta? Gracias. –

2

utilizar esto para un archivo de sólo lectura:

FileAttributes yourFile = File.GetAttributes(yourFilePath); 
File.SetAttributes(yourFilePath, FileAttributes.ReadOnly); 

Donde "yourFilePath" es una cadena.

Para un archivo oculto:

FileAttributes yourFile = File.GetAttributes(yourFilePath); 
File.SetAttributes(yourFilePath, FileAttributes.Hidden); 

Y para un archivo normal (no de sólo lectura, ni ocultos):

FileAttributes yourFile = File.GetAttributes(yourFilePath); 
File.SetAttributes(yourFilePath, FileAttributes.Normal); 

Sé que no pidió el establecimiento de un archivo normal, pero Creo que es útil saber esto.

+0

Rodrio, ¿puedes verificar la segunda parte de mi pregunta, por favor alguien editó y eliminó la segunda parte, así que volví a editarla. Gracias. por cierto, voté por todos ustedes. –

+0

muchas gracias, creo que todas sus respuestas funcionan y las voté a todas ustedes, pero ya acepté la respuesta de Aghilas Yakoub, así que no me malinterpreten. realmente les agradezco a todos. –

+0

respeto tu respuesta –

Cuestiones relacionadas