FileInfo.IsReadOnly Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que determina se o arquivo atual é somente leitura.
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 da propriedade
true
se o arquivo atual for somente leitura ou não puder ser encontrado; caso contrário, false
.
Exceções
O arquivo descrito pelo objeto atual FileInfo não pôde ser encontrado ao tentar definir a propriedade IsReadOnly. (Observe que obter essa propriedade para um arquivo inexistente não gerará uma exceção, mas retornará true
.)
Um erro de E/S ocorreu ao abrir o arquivo.
Não há suporte para essa operação na plataforma atual.
- ou -
O chamador não tem a permissão necessária.
O usuário não tem permissão para gravação, mas tentou definir esta propriedade como false
.
Exemplos
O exemplo a seguir cria um arquivo temporário, usa a IsReadOnly propriedade para primeiro marcar e, em seguida, define seu status somente leitura e, por fim, marca-o como leitura-gravação para excluí-lo.
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.
'
Comentários
Use a IsReadOnly propriedade para determinar ou alterar rapidamente se o arquivo atual é somente leitura.
Se o arquivo atual não existir, obter essa propriedade sempre retornará true
, mas as tentativas de definir gerarão um FileNotFoundException.
Quando chamado pela primeira vez, FileInfo chama Refresh e armazena em cache informações sobre o arquivo. Em chamadas subsequentes, você deve chamar Refresh para obter a cópia mais recente das informações.