Comment utiliser FileStream pour ajouter à un fichier sans un verrou exclusif?
Ce que j'essaie de faire avec FileStream
en C#/.NET est d'ouvrir deux volets: l'un ajout dans un fichier et de l'autre, la lecture de ces écritures de manière asynchrone (pour l'unité des tests de connexion réseau de la manipulation de code). Je ne peux pas comprendre comment obtenir le écrivain flux d'ouvrir le fichier en non-exclusif de verrouillage de mode, et donc le code toujours déclenche une exception:
Le processus ne peut pas accéder au fichier
'C:\test.txt" parce qu'il est utilisé
par un autre processus.
Voici une poignée de code qui illustre le problème:
FileStream fwriter = new FileStream("C:\\test.txt", FileMode.Append,
FileAccess.Write, FileShare.Read);
FileStream freader = new FileStream("C:\\test.txt", FileMode.Open,
FileAccess.Read, FileShare.Read);
OriginalL'auteur Neil C. Obremski | 2008-10-09
Vous devez vous connecter pour publier un commentaire.
Voir cette question: C# lecture/écriture de fichiers partage de fichiers ne fonctionne pas
En bref, votre freader a pour spécifier FileShare.Écriture pour permettre le fait qu'il est déjà un écrivain sur le fichier.
OriginalL'auteur Rob Walker
Je ne sais pas si ça aide, mais si vous ne l'unité de test, ne serait-il pas plus facile d'utiliser un flux de mémoire au lieu de fichiers?
OriginalL'auteur Grzenio