2010-03-08 8 views
2

Je rencontre un problème lors de l'ouverture de fichiers récemment fermés par le framework .Net. Fondamentalement, ce qui se passe est la suivante:Numéro de fichier C# .Net utilisé

  • Lire dans un fichier XML à l'aide DataSet.ReadXml()
  • apporter des modifications aux données
  • Dressez le fichier XML à l'aide DataSet.WriteXml()
  • Copiez le fichier XML à un nouveau emplacement à l'aide File.Copy
  • FTP le fichier en utilisant un contrôle personnalisé

Cette Sequ La fonction peut échouer par intermittence après WriteXML ou File.Copy avec une exception de fichier en cours d'utilisation.
Je suppose que cela pourrait être le cache d'écriture de Windows ne pas vider tout de suite. Quelqu'un peut-il confirmer que cela pourrait causer mon problème? Des solutions à suggérer?

Merci,
Dan

+0

s'il vous plaît envoyer votre code source complet. nous pouvons traquer ce bug :-) –

+0

À tout le moins poster la ligne avec WriteXml, en ce moment nous ne pouvons pas voir quelle surcharge. –

Répondre

0

Remarque: si vous utilisez FileStream n'oubliez pas de le fermer.

0

Vous ne savez pas comment vous ouvrez le fichier.

J'avais le même problème après la fermeture d'un fichier texte.

Ce que j'ai trouvé qui a fonctionné:

if (! = Null sReader) ((IDisposable) sReader) .Dispose();

où sreader est

StreamReader sReader

+0

Encore mieux, si vous le pouvez - utilisez l'instruction 'using' pour ne pas avoir à penser à l'éliminer. –

1

Serait-ce peut-être causé par un programme sur anti-virus avides? Ils peuvent placer un verrou sur eux pendant qu'ils inspectent le fichier