Je dispose d'un fichier journal qui est ouvert et utilisé par un autre programme, et je l'ai lu son contenu avec les éléments suivants:Écrase le fichier texte utilisé par un autre processus?
Dim strContents As String
Dim x As New FileStream(FullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
Dim objReader As StreamReader
objReader = New StreamReader(x)
strContents = objReader.ReadToEnd()
objReader.Close()
Cela fonctionne pour lire le texte à partir du fichier alors qu'il est encore en cours d'utilisation par le autre programme, cependant, immédiatement après cela, j'ai besoin de tronquer le fichier texte (sans le supprimer) afin qu'il soit vide à nouveau. Mais le fichier sera toujours utilisé par l'autre programme.
J'ai essayé
Dim sWrite As StreamWriter
sWrite = New System.IO.StreamWriter(FullPath, False)
sWrite.Write("")
sWrite.Close()
Mais je reçois l'exception "utilisé par une autre application". J'ai essayé de regarder dans StackOverflow et googler, mais je ne peux pas sembler trouver une réponse, et je ne peux pas trouver un moyen de le faire avec filestreams soit, ou je voudrais essayer d'utiliser
Dim fs As New FileStream(FullPath, FileMode.Open, FileAccess.Write, FileShare.ReadWrite)
Merci à avance.
J'ai un processus planifié qui écrit dans un fichier journal. Si quelqu'un se connecte au serveur et quitte l'explorateur de fichiers, avec ce fichier journal sélectionné, le processus planifié reçoit cette exception et ne peut pas s'exécuter ou ne peut pas écrire dans son fichier journal. Si ennuyant. L'explorateur de fichiers devrait ouvrir le fichier, afficher l'aperçu et le fermer; mais non, il maintient le fichier ouvert tant que le fichier est sélectionné. Je ne peux pas tuer l'explorateur de fichiers du processus planifié, ce qui crée un mauvais problème. – Shavais