FileStream avec fichier verrouillé
Je me demande si il est possible d'obtenir un readonly FileStream pour un fichier verrouillé?
Maintenant, je reçois une exception lorsque je tente de lire le fichier verrouillé.
using (FileStream stream = new FileStream("path", FileMode.Open))
Merci!
source d'informationauteur SaphuA | 2011-05-17
Vous devez vous connecter pour publier un commentaire.
Vous devriez essayer un autre constructeur. Ils sont documentés sur le site MSDN.
Celui-ci ressemble à un pari:
MSDN Lien
FileAccess
FileShare
Qui va utiliser la valeur par défaut pour le partage de fichiers argument, FileShare.Lire. Qui nie tout le processus de l'écriture du fichier. Cela ne peut pas fonctionner si un autre processus est écrit dans le fichier, vous ne pouvez pas nier un droit déjà acquis.
Vous devez spécifier FileShare.ReadWrite. Encore susceptibles de ne pas fonctionner si les autres processus utilisés FileShare.Aucun, aucune solution de contournement pour que. Méfiez-vous que l'obtention d'un accès en lecture à un fichier qui a été écrit est gênante, vous n'avez pas un système fiable de fin de fichier indication. Le dernier enregistrement ou à la ligne dans le fichier peut avoir été que partiellement écrite.
J'ai utilisé le suivant qui travaille, doit cependant être utilisée avec précaution en tant que fichier peut être modifié alors que vous l'avez ouvert par un autre processus.
Vous pouvez simplement déverrouiller le fichier et lire un fichier.
Utilisez simplement Handle.exe de Sysinternals , ou Unlocker avec les options de ligne de commande.
Ils ont tous deux peuvent déverrouiller le fichier , et vous pouvez exécuter à partir de votre programme facilement,
sans quitter votre programme.
(Mais ne les utilisent pas pour les Windows fichier SAM, il ne fonctionne pas avec SAM 😉 )
Bonne chance !