es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

.NET Core: Múltiples operaciones de lectura/escritura en un archivo de texto.

Múltiples operaciones de lectura/escritura están accediendo a un solo archivo, y durante la operación de escritura me enfrento a este problema.

El proceso no puede acceder al archivo porque está siendo utilizado en otro proceso.

Usando esto para añadir texto al archivo:

using (StreamWriter writer = System.IO.File.AppendText("wwwroot/Files/file.txt"))
{
    writer.WriteLine(stringData.ToString());
    writer.Close();
}

¿Existe alguna forma de realizar múltiples lecturas/escrituras en un archivo?

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje AI, no puedo estar seguro de esta respuesta sin tener un contexto adicional, pero intenta usar un objeto FileStream y bloquear el archivo mientras se escribe. Aquí tienes un ejemplo de código:

    private static readonly object fileLock = new object();
    
    public static void WriteToFile(string text)
    {
        lock (fileLock)
        {
            using (var fileStream = new FileStream("wwwroot/Files/file.txt", FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
            using (var writer = new StreamWriter(fileStream))
            {
                writer.WriteLine(text);
            }
        }
    }
    

    Este código utiliza un objeto de bloqueo para asegurarse de que no se realicen dos operaciones de escritura concurrentemente. Se crea el objeto FileStream con FileShare.ReadWrite para permitir que varios procesos lean y escriban en el archivo simultáneamente. Al usar FileAccess.Write, nos aseguramos de tener acceso exclusivo de escritura al archivo hasta que se cierre el flujo.

    Este enfoque debería permitir múltiples operaciones de lectura/escritura en un solo archivo.

Comments are closed.