FileInfo.IsReadOnly Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que determina si el archivo actual es de solo lectura.
public:
property bool IsReadOnly { bool get(); void set(bool value); };
public bool IsReadOnly { get; set; }
member this.IsReadOnly : bool with get, set
Public Property IsReadOnly As Boolean
Valor de propiedad
true
si el archivo actual es de solo lectura o no se pudo encontrar; de lo contrario, false
.
Excepciones
No se encontró el archivo descrito por el objeto actual FileInfo al intentar establecer la propiedad IsReadOnly. (Tenga en cuenta que la obtención de esta propiedad para un archivo inexistente no producirá una excepción, sino que devuelve true
).
Se produjo un error de E/S al abrir el archivo.
Esta operación no es compatible con la plataforma actual.
o bien
El llamador no dispone del permiso requerido.
El usuario no tiene permiso de escritura, pero ha intentado establecer esta propiedad en false
.
Ejemplos
En el ejemplo siguiente se crea un archivo temporal, se usa la IsReadOnly propiedad para comprobar primero y, a continuación, establecer su estado de solo lectura y, por último, se marca como de lectura y escritura para eliminarlo.
using namespace System;
using namespace System::IO;
int main()
{
// Create a temporary file.
String^ filePath = Path::GetTempFileName();
Console::WriteLine("Created a temp file at '{0}.", filePath);
// Create a new FileInfo object.
FileInfo^ fInfo = gcnew FileInfo(filePath);
// Get the read-only value for a file.
bool isReadOnly = fInfo->IsReadOnly;
// Display whether the file is read-only.
Console::WriteLine("The file read-only value for '{0}' is {1}.", fInfo->Name, isReadOnly);
// Set the file to read-only.
Console::WriteLine("Setting the read-only value for '{0}' to true.", fInfo->Name);
fInfo->IsReadOnly = true;
// Get the read-only value for a file.
isReadOnly = fInfo->IsReadOnly;
// Display that the file is now read-only.
Console::WriteLine("The file read-only value for '{0}' is {1}.", fInfo->Name, isReadOnly);
// Make the file mutable again so it can be deleted.
fInfo->IsReadOnly = false;
// Delete the temporary file.
fInfo->Delete();
return 0;
};
// This code produces output similar to the following,
// though results may vary based on the computer, file structure, etc.:
//
// Created a temp file at 'C:\Users\UserName\AppData\Local\Temp\tmpB438.tmp'.
// The file read-only value for 'tmpB438.tmp' is False.
// Setting the read-only value for 'tmpB438.tmp' to true.
// The file read-only value for 'tmpB438.tmp' is True.
//
using System;
using System.IO;
public class FileExample
{
public static void Main()
{
// Create a temporary file.
string filePath = Path.GetTempFileName();
Console.WriteLine($"Created a temp file at '{filePath}'.");
// Create a new FileInfo object.
FileInfo fInfo = new FileInfo(filePath);
// Get the read-only value for a file.
bool isReadOnly = fInfo.IsReadOnly;
// Display whether the file is read-only.
Console.WriteLine($"The file read-only value for '{fInfo.Name}' is {isReadOnly}.");
// Set the file to read-only.
Console.WriteLine($"Setting the read-only value for '{fInfo.Name}' to true.");
fInfo.IsReadOnly = true;
// Get the read-only value for a file.
isReadOnly = fInfo.IsReadOnly;
// Display that the file is now read-only.
Console.WriteLine($"The file read-only value for '{fInfo.Name}' is {isReadOnly}.");
// Make the file mutable again so it can be deleted.
fInfo.IsReadOnly = false;
// Delete the temporary file.
fInfo.Delete();
}
}
// This code produces output similar to the following,
// though results may vary based on the computer, file structure, etc.:
//
// Created a temp file at 'C:\Users\UserName\AppData\Local\Temp\tmpB438.tmp'.
// The file read-only value for 'tmpB438.tmp' is False.
// Setting the read-only value for 'tmpB438.tmp' to true.
// The file read-only value for 'tmpB438.tmp' is True.
//
Imports System.IO
Module FileExample
Sub Main()
' Create a temporary file.
Dim filePath As String = Path.GetTempFileName()
Console.WriteLine($"Created a temp file at '{filePath}'.")
' Create a new FileInfo object.
Dim fInfo As New FileInfo(filePath)
' Get the read-only value for a file.
Dim isReadOnly As Boolean = fInfo.IsReadOnly
' Display whether the file is read-only.
Console.WriteLine($"The file read-only value for '{fInfo.Name}' is {isReadOnly}.")
' Set the file to read-only.
Console.WriteLine($"Setting the read-only value for '{fInfo.Name}' to true.")
fInfo.IsReadOnly = True
' Get the read-only value for a file.
isReadOnly = fInfo.IsReadOnly
' Display that the file is now read-only.
Console.WriteLine($"The file read-only value for '{fInfo.Name}' is {isReadOnly}.")
' Make the file mutable again so it can be deleted.
fInfo.IsReadOnly = False
' Delete the temporary file.
fInfo.Delete()
End Sub
End Module
' This code produces output similar to the following,
' though results may vary based on the computer, file structure, etc.:
'
' Created a temp file at 'C:\Users\UserName\AppData\Local\Temp\tmpB438.tmp'.
' The file read-only value for 'tmpB438.tmp' is False.
' Setting the read-only value for 'tmpB438.tmp' to true.
' The file read-only value for 'tmpB438.tmp' is True.
'
Comentarios
Use la IsReadOnly propiedad para determinar o cambiar rápidamente si el archivo actual es de solo lectura.
Si el archivo actual no existe, la obtención de esta propiedad siempre devolverá true
, pero los intentos de establecer producirán un FileNotFoundException.
Cuando se llama por primera vez, FileInfo llama Refresh a y almacena en caché información sobre el archivo. En las llamadas posteriores, debe llamar Refresh a para obtener la copia más reciente de la información.