Pergunta

Eu estou tentando bandeira conjunto que faz com que a caixa de seleção Read Only a aparecer quando você right click \ Properties em um arquivo.

Obrigado!

Foi útil?

Solução

Duas maneiras:

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;

ou

// Careful! This will clear other file flags e.g. FileAttributes.Hidden
File.SetAttributes(filePath, FileAttributes.ReadOnly/FileAttributes.Normal);

A propriedade IsReadOnly em FileInfo essencialmente faz o que você teria que fazer manualmente no segundo método.-Lançando pouco

Outras dicas

Para set o sinalizador só de leitura, com efeito fazendo com que o arquivo não-gravável:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) | FileAttributes.ReadOnly);

Para Remover o sinalizador só de leitura, com efeito tornando o gravável arquivo:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);

Para alternância o sinalizador só de leitura, tornando-se o oposto de tudo o que é agora:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) ^ FileAttributes.ReadOnly);

Este é basicamente bitmasks em vigor. Você define um pouco específica para definir o sinalizador só de leitura, você limpá-la para remover a bandeira.

Note que o código acima não vai alterar outras propriedades do arquivo. Em outras palavras, se o arquivo foi escondido antes de executado o código acima, ele vai ficar escondido depois também. Se você simplesmente definir os atributos de arquivo para .Normal ou .ReadOnly você pode acabar perdendo outras bandeiras no processo.

c #:

File.SetAttributes (filePath, FileAttributes.Normal);

File.SetAttributes (filePath, FileAttributes.ReadOnly);

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top