Domanda

Sto tentando di scrivere su un file che ha i seguenti attributi: Hidden e ReadOnly.Il mio processo dovrebbe essere in grado di scrivere su di esso, ma altri processi hanno accesso in sola lettura.

La procedura che sto seguendo è:

  1. Controlla se il file esiste
  2. Rimuovi gli attributi esistenti dal file, ovvero nascosti e di sola lettura
  3. Completa la scrittura nel file
  4. Applica di nuovo gli attributi (nascosti e di sola lettura) al file

So che questo non è il modo consigliato per utilizzare gli attributi del file e scrivere su un file nascosto.C'è un modo migliore per svolgere il mio compito?

Grazie in anticipo.

È stato utile?

Soluzione

Sì, imposta la tua applicazione come account speciale.Assegna i permessi di scrittura al file a quell'account su quel file e l'accesso in lettura a tutti gli altri account.

Il modo più semplice per eseguire nel contesto di un altro utente è premere Maiusc e fare clic con il pulsante destro del mouse sul file exe, selezionare "Esegui come utente diverso".

Con un servizio Windows si modifica l'account in esecuzione dalle proprietà del servizio.Lo stesso vale per le attività pianificate di Windows.

Per cambiare l'account corrente "nel bel mezzo del processo" devi fare ancora un po 'di lavoro, trova un buon articolo sull'argomento, come http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C .

Altri suggerimenti

Come nota @Albin, il modo corretto per risolvere il problema di accesso è con i permessi dei file, non con gli attributi.

Se il file è nascosto perché non desideri che gli utenti possano visualizzarne il contenuto, suggerirei che un meccanismo di crittografia semplice (relativamente leggero) sarebbe una soluzione migliore dell'attributo nascosto.

Nota, sia gli attributi nascosti che quelli di sola lettura possono essere disattivati da un utente con privilegi sufficienti.E in genere chiunque può attivare la funzione "mostra cartelle e file nascosti" in Explorer.

Non è necessario rimuovere l'attributo nascosto.Tuttavia, non conosco altra soluzione con quella di sola lettura.

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