Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme pour ouvrir un fichier par plusieurs processus [ Système / Fichier & Disque ] (bossun)

vendredi 15 septembre 2006 à 11:22:40 | Probleme pour ouvrir un fichier par plusieurs processus

bossun

salut,

Je cherche à acceder à un meme fichier par 2 processus différents en meme temps... je voudrais que le premier puisse l'ouvir en lecture ecriture... tandis que le second (et tous les autres) seulement en lecture...

J ai vu la classe FileStream mais je ne sais pas comment parametrer mon objet...

J'ai bien essayé de spécifier le FileShare à toutes les valeurs mais il me laisse toujours pas faire...

voilà mon code:

try

{

_LayoutStream =

File.Open(filepath, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);

_ReportParameters = (

LayoutSerialization)BF.Deserialize(_LayoutStream);

}

catch (IOException ex)

{

_LayoutStream =

File.Open(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);

_ReportParameters = (

LayoutSerialization)BF.Deserialize(_LayoutStream);

MessageBox.Show("Ce rapport est en lecture seule car il est déjà ouvert par un autre utilisateur");

}


Le premier process ouvre sans probleme le fichier... le second echoue et je ne sais pas comment faire...


Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F< body>

vendredi 15 septembre 2006 à 12:34:36 | Re : Probleme pour ouvrir un fichier par plusieurs processus

leprov

le plus simple serait que tes process ouvrent le filestream, stockent le contenu du stream dans un MemoryStream/BufferStream en fermant le fileStream. si tu es ouvert en lecture seule, pas de probleme, ton fichier est lu comme il faut (mais tu n'aura pas les mises a jour sans coder plus). si tu es en ecriture, tu flush régulièrement ton stream dans un fichier temporaire qui ecrasera lancien fichier a la fermeture de ton stream. si tu veux etre notifié des mises a jour du fichier, soit tu décide du nom du fichier temporaire, et tu utilise un filesystemwatcher sur ce fichier, lorsque le process qui ecrit a finit son ecriture, il ferme le filestream, les process en lecture récupèrent les changements et ferment a leur tour. Apres a toi de gérer les ressources afin que tout le monde n'essaie pas d'accéder en meme temps au fichier pour récupérer les données en lecture.... si qqun a une solution plus simple, je laisse proposer, mais la comme ca, je vois pas vraiment d'autre solutions

vendredi 15 septembre 2006 à 13:21:51 | Re : Probleme pour ouvrir un fichier par plusieurs processus

bossun

ça me sembles plutot barbare cette solution.. mais je vais la tester...



Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F< body>

vendredi 15 septembre 2006 à 18:54:48 | Re : Probleme pour ouvrir un fichier par plusieurs processus

bossun

Réponse acceptée !

Voilà la solution:

 

FileStream fs = File.Open(@"C:\test.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
FileStream fs2 = File.Open(@"C:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);




 

Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F< body>



Cette discussion est classé dans : fichier, probleme, processus, open, layoutstream


Répondre à ce message

Sujets en rapport avec ce message

Probleme de fichier utilisé [ par MorpionMx ] Bonjour, J'ai une appli qui me permet de loader un image dans une PictureBox. Cette image est copiée ensuite dans un Bitmap. Avec une trackBar, j'appl Status de fichier [ par SharpMao ] Salut à tous,Est-ce que quelqu'un sait si il y a un moyen de savoir si un fichier est actuellement ouvert en écriture par un autre processus? Je m'exp String et Char[], probleme de caracteres [ par Shouwi ] Hello, aprés moultes recherches et essais, je n'arrive pas a faire ce que je veux :\Je veux lire un fichier, style ASCII ART, donc avec des caracteres Cle primaire sur fichier CSV [ par vipp ] Salut à tousJe souhaitais me faire un petit agenda en c# en utilisant comme "base" un fichier CSV (ou txt).Mon probleme est que, l'utilisation d'un OD Effacer une ligne d'un fichier texte [ par fafelle1 ] Bonjour, voila je vous explique mon petit probleme, si quelqu'un sais la reponse ou peut m'aider cce serai pas de refu :-)Bref voici mon souci : Je me Ouverture multiple fichiers pr 1 seul processus [ par Blacknight91 ] Bl@cknightBonjour,J'ai une application pouvant recevoir en argument un chemin d'un fichier.J'ai fait l'association extension de fichier mon applicati Sauvegarde PostGre [ par Marquo ] Bonjour,j'aimerais faire une sauvegarde PostGre.Pour cela je crée un processus avec pour nom de fichier le "pg_dump" et pour arguments le nom de la ba Probleme avec Environment.GetEnvironmentVariable("TEMP") si l'utilisteur contient des accents [ par fcolo ] Bonjour,pour mon application, je télécharge un fichier sur internet pour l'exécuter ensuite en local grace à Process.Start(localFile);Je ne lance pas probleme source video [ par gwenp68 ] Bonjours tout le monde !! Alors voila g un soucis concernant une source video.. En fait je me suis programmé une interface permettant de lire un fich probleme de connection [ par psykostik ] Bonjour, j'ai crée une base de donnée et je men sers dans une application windows form. Voila le code de connection private void sauvegarderToolStrip


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.