Solutions VB.NET et C# pour accéder aux fichiers verrouillés par d'autres processus
L'accès à des fichiers utilisés simultanément par plusieurs processus entraîne souvent la redoutable exception « en cours d'utilisation ». Ce guide fournit des méthodes fiables pour lire et modifier des fichiers en VB.NET et C# même lorsqu'ils sont verrouillés par d'autres applications.
Utilisation de FileShare
en VB.NET et C#
Une solution simple implique le paramètre FileShare
lors de l'ouverture des flux de fichiers. Le paramètre FileShare.ReadWrite
signale la volonté de l'application de partager l'accès aux fichiers.
Exemple VB.NET :
<code class="language-vb.net">Dim strContents As String Dim objReader As StreamReader objReader = New StreamReader(FullPath, FileShare.ReadWrite) strContents = objReader.ReadToEnd() objReader.Close()</code>
Exemple C# :
<code class="language-csharp">using (var objReader = new StreamReader(FullPath, FileShare.ReadWrite)) { var strContents = objReader.ReadToEnd(); }</code>
Approche alternative : employer FileStream
La classe FileStream
offre un contrôle plus précis sur l'accès aux fichiers. Cet exemple démontre son utilisation :
<code class="language-csharp">using (var logFileStream = new FileStream("c:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var logFileReader = new StreamReader(logFileStream)) { while (!logFileReader.EndOfStream) { string line = logFileReader.ReadLine(); // Process each line } }</code>
Ce code ouvre le fichier en utilisant FileStream
, en spécifiant FileMode.Open
, FileAccess.Read
et FileShare.ReadWrite
. Un StreamReader
lit ensuite efficacement le contenu du fichier.
Attribution de la source
L'approche FileStream
est adaptée de : https://www.php.cn/link/c7876d6b0f9d5461fd3e87c0d1e51e12
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!