Obtengo datos binarios de un campo de base de datos de SQL Server y estoy creando un documento localmente en un directorio en el que mi aplicación tiene permisos. Sin embargo, sigo obteniendo el error especificado en el título. He intentado numerosas sugerencias publicadas en la web, incluidas las sugeridas en publicaciones anteriores sobre Stackoverflow. También he usado ProcessExplorer> Find Handle para localizar el bloqueo y no devuelve nada como si el archivo no estuviera bloqueado.El proceso no puede acceder al archivo porque lo está utilizando otro proceso
Estoy utilizando el siguiente código para guardar el archivo en el sistema de archivos y luego trato de copiar este archivo a una nueva ubicación más adelante en el proceso de solicitud dentro de otro método. Es este método de copia el que toma la ruta del archivo recién creado que arroja la excepción.
El archivo en sí se crea con su contenido y puedo abrirlo a través del Explorador de Windows sin ningún problema.
¿Me falta algo completamente obvio? ¿Estoy creando el archivo correctamente desde la base de datos? Cualquier ayuda para resolver o diagnosticar mejor el problema sería muy apreciada.
// Get file from DB
FileStream fs = new FileStream(
"C:\myTempDirectory\myFile.doc", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write("BinaryDataFromDB");
fs.Flush();
fs.Close();
fs.Dispose();
// Copy file
File.Copy(sourceFileName, destinationFilename, true);
¿Publicará el código real? Parece que hay un problema invisible que probablemente yace escondido en otra parte ... – Bloodyaugust
Sé que probablemente solo hiciste un reemplazo de texto para los fines de tu pregunta, pero tu ruta de archivo debería ser '@" C: \ myTempDirectory \ myFile.doc "' debido a la barra invertida que escapa. – Jacob
¿Estás seguro de que la excepción no está hablando de que el nombre de archivo de destino esté siendo utilizado por otro proceso? – Jacob