Question

Je suis en train d'écrire dans un fichier qui a les attributs suivants - Invisible et ReadOnly. Mon processus devrait être en mesure d'écrire, mais d'autres processus ont accès en lecture seule.

La procédure que je suivais est:

  1. Vérifiez si le fichier existe
  2. Supprimer les attributs existants sur le fichier, à savoir caché et en lecture seule
  3. l'écriture Terminer dans le fichier
  4. Appliquer les attributs (cachés et en lecture seule) dans le fichier

Je sais que ce n'est pas la méthode recommandée pour utiliser les attributs de fichier et écrire dans un fichier caché. Y at-il une manière plus agréable d'accomplir ma tâche?

Merci à l'avance.

Était-ce utile?

La solution

Oui, faites votre demande usurper l'identité d'un compte spécial. Donner des autorisations d'écriture de fichiers à ce compte sur ce fichier et un accès en lecture à tous les autres comptes.

La façon la plus simple à exécuter dans le contexte d'un autre utilisateur est de changement de presse et clic droit sur le fichier exe, choisissez « Exécuter en tant qu'utilisateur différent ».

Avec un service Windows vous modifiez le compte en cours d'exécution à partir des propriétés de service. La même chose avec les tâches planifiées de Windows.

Pour modifier le compte courant « au milieu du processus », vous devez faire un peu plus de travail, trouver un bon article sur le sujet, comme http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C .

Autres conseils

Comme le note @Albin, la bonne façon d'aborder la question de l'accès est avec des autorisations de fichiers, pas les attributs.

Si le fichier est caché parce que vous ne voulez pas que les utilisateurs puissent afficher son contenu, je vous suggère un mécanisme simple de cryptage (relativement léger) serait une meilleure solution que l'attribut caché.

Note, à la fois caché et attributs lecture ne peut être désactivé par un utilisateur disposant des privilèges suffisants. Et généralement tout le monde peut activer la fonction « afficher les fichiers et dossiers cachés » dans l'Explorateur.

Il n'y a pas besoin d'enlever l'attribut caché. Je ne connais pas d'autre solution avec le readonly un, cependant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top