Domanda

Sto cercando di impostare il flag che fa apparire la casella di controllo Sola lettura quando fai clic con il pulsante destro del mouse su \ Proprietà su un file.

Grazie!

È stato utile?

Soluzione

Due modi:

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

o

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

La proprietà IsReadOnly su FileInfo essenzialmente fa il bit-flipping che dovresti fare manualmente nel secondo metodo.

Altri suggerimenti

Per impostare il flag di sola lettura, rendendo in effetti il ??file non scrivibile:

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

Per rimuovere il flag di sola lettura, rendendo in effetti il ??file scrivibile:

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

Per attivare / disattivare la bandiera di sola lettura, rendendola l'opposto di qualunque cosa sia adesso:

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

Questa è sostanzialmente una maschera di bit attiva. Si imposta un bit specifico per impostare il flag di sola lettura, lo si cancella per rimuovere il flag.

Nota che il codice sopra non cambierà altre proprietà del file. In altre parole, se il file è stato nascosto prima di aver eseguito il codice sopra, rimarrà nascosto anche in seguito. Se imposti semplicemente gli attributi del file su .Normal o .ReadOnly potresti perdere altre bandiere nel processo.

c #:

File.SetAttributes (filePath, FileAttributes.Normal);

File.SetAttributes (filePath, FileAttributes.ReadOnly);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top