Bonjour.
J'ai du mal à trouver des infos/précisions, sur comment partager l'acces à un fichier uniquement dans un processus.
Dit autrement.
J'ai dans mon appli, 2 FileStream, l'un pour ecrire, l'autre pour lire.
Je veux que les 2 puissent acceder au meme fichier en meme temps, mais je ne veux pas qu'une autre appli puisse ouvrir le ficher en question tant que je n'ai pas fini mon job.
J'ai fais plein d'essais avec le parametre FileShare, mais il n'y a rien à faire, mon Reader leve une exception disant que le fichier est deja utilisé par un autre processus.
petit exemple :
Dans cet exemple l'exception est levée lors de la définition de m_reader, pourtant FileShare a été définit à Read dans le Writer qui est le premier à utiliser le fichier; vu que reader est défini avec un FileAccess.Read, je ne comprends pas pourquoi j'obtiens cette erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 m_writer = new FileStream(m_destFile, FileMode.CreateNew, FileAccess.Write, FileShare.Read, buffersize, true); //Entre temps m_writer a écrit un block, et est peut etre en train d'ecrire le block suivant... m_reader = new FileStream(m_destFile, FileMode.Open, FileAccess.Read, FileShare.Read, size, true);
Partager