Maison >développement back-end >C++ >Comment puis-je lire un fichier utilisé par un autre programme ?
Accès simultané aux fichiers
La lecture d'un fichier en cours d'écriture active par un autre programme présente un défi unique. Les méthodes de lecture de fichiers standard échouent souvent, générant des exceptions indiquant l'état verrouillé du fichier.
Solutions pour l'accès simultané aux fichiers
Pour réussir à lire un tel fichier, vous avez besoin d'une stratégie qui permet un accès simultané. Une solution courante consiste à ouvrir le fichier dans un mode permettant à la fois la lecture et l'écriture.
Implémentation en C#/.NET
L'extrait de code C# suivant illustre cette approche en utilisant FileStream
et StreamReader
:
<code class="language-csharp">using System; using System.IO; namespace ConcurrentFileReader { class Program { static void Main(string[] args) { string filePath = "c:\test.txt"; // Open the file for reading and writing concurrently FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader reader = new StreamReader(fileStream); // Read and process the file line by line while (!reader.EndOfStream) { string line = reader.ReadLine(); // Process the line Console.WriteLine(line); } // Close resources reader.Close(); fileStream.Close(); } } }</code>
La clé est FileShare.ReadWrite
. Cela garantit que le fichier est ouvert en mode partagé, permettant des opérations de lecture et d'écriture simultanées sans interruption. Le programme peut désormais lire le contenu du fichier pendant qu'un autre processus continue d'y écrire. Notez que les données lues peuvent être incomplètes ou ne refléter qu'une partie du contenu du fichier à un instant donné, selon l'activité du processus d'écriture.
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!