Maison >développement back-end >C++ >Comment puis-je lire un fichier utilisé par un autre programme ?

Comment puis-je lire un fichier utilisé par un autre programme ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-16 15:53:12399parcourir

How Can I Read a File in Use by Another Program?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn