2011-11-26 14 views
7

Quiero copiar algunos archivos de texto, que están escritos por otra aplicación, pero no quiero hacer nada para evitar que la otra aplicación. de escribir a estos archivos.¿File.Copy impide que otra aplicación escriba en el archivo?

Estoy usando File.Copy, desde System.IO namespace, C#, .Net Framework 2.0.

Comprobé la documentación de MSDN, pero no se menciona específicamente nada sobre el método que usa File.Copy. ¿Es un contenedor de una llamada API no administrada?

¿File.Copy bloquea o bloquea el archivo que se está copiando de alguna manera?

Gracias de antemano por cualquier información sobre esto.

+0

@Joey: Supongo que Matt se refiere al archivo de origen, no al archivo de destino. Aun así, copiar un archivo mientras otro proceso está escribiéndole podría generar resultados extraños, dependiendo del tipo de archivo y el propósito de copiarlo. –

Respuesta

1

Puede usar .Net Reflector (u otra herramienta de descompilación) para ver la estructura interna del método.

En realidad se puede ver que System.IOFile.Copy utiliza Microsoft.Win32.Win32Native biblioteca para hacer frente a los archivos. Microsoft.Win32.Win32Native es un contenedor CLR para todas las operaciones nativas de Win32.

+0

Gracias a todos por sus respuestas. – netcat

+0

Joey, sí, me refiero al archivo de origen y no al archivo de destino en el que estoy copiando. Schglurps, he expirado con esto, abrí un filestream con el intercambio de archivos establecido en None en otra aplicación. y pude copiar el archivo de todos modos, usando File.Copy. Sailer, gracias. No sé por qué no pensé en esto. Veré el método en reflector y leeré en la llamada api win32. – netcat

2

Si la otra aplicación crea sus archivos al especificar FileShare.None, recibirá una excepción de acceso no autorizado. Entonces me imagino que solo debes procesar esta excepción específica en tu aplicación.

+0

Mi mal, gracias Fredrik por aclarar mi pregunta. – netcat

Cuestiones relacionadas