write txt extension example create c# file

txt - system io c#



¿Cuál es la diferencia entre File y FileInfo en C#? (9)

He estado leyendo que los métodos estáticos de File Class se utilizan mejor para realizar pequeñas y pocas tareas en un archivo como verificar si existe y que deberíamos usar una instancia de la Clase FileInfo si vamos a realizar muchas operaciones en un archivo específico.

Entiendo esto y puedo usarlo de esa manera a ciegas, pero me gustaría saber por qué hay una diferencia. ¿De qué se trata la forma en que funcionan que los hacen adecuados para diferentes situaciones? ¿Cuál es el punto de tener estas 2 clases diferentes que parecen hacer lo mismo de diferentes maneras?

Sería útil si alguien pudiera responder al menos una de estas preguntas.


"Los métodos de las clases File y FileInfo son similares, pero difieren en que los métodos de la clase File son estáticos , por lo que debe pasar más parámetros de los que tendría para los métodos de la instancia de FileInfo. Debe hacerlo porque funciona en un archivo específico, por ejemplo, el método FileInfo.CopyTo () toma un parámetro para la ruta de destino que se utiliza para copiar el archivo, mientras que el método File.Copy () toma dos parámetros para la ruta de origen y la ruta de destino "

http://www.aspfree.com/c/a/C-Sharp/A-Look-at-C-Sharp-File-and-FileInfo-Classes/1/

http://www.intelliott.com/blog/PermaLink,guid,ce9edbdb-6484-47cd-a5d6-63335adae02b.aspx


El archivo está optimizado para operaciones únicas en un archivo, FileInfo está optimizado para varias operaciones en el mismo archivo, pero en general no hay mucha diferencia entre las diferentes implementaciones de métodos.

Si desea comparar las implementaciones exactas, use Reflector para ver ambas clases.


File.Exists funcionará mucho más rápido que un nuevo FileInfo (filePath) .Exists, especialmente a través de una red y siempre que los archivos realmente existan. Esto se debe a que File.Exists solo verificará la existencia del archivo, mientras que un nuevo FileInfo (filePath) .Exists primero construye un objeto FileInfo, que contiene todas las propiedades (fechas, tamaño, etc.) del archivo (si existe).

En mi experiencia con esto, incluso la comprobación de la existencia de 10 archivos a través de la red es notablemente más rápida (es decir, 20 ms frente a 200 ms) al utilizar File.Exists.


FileInfo es una instancia de un archivo que representa el archivo en sí. El archivo es una clase de utilidad por lo que puede funcionar con cualquier archivo


Información del archivo:

  • Necesita instanciar antes de usar
  • Contiene métodos de instancia
  • Información de caché sobre el archivo y necesita llamar a Refresh cada vez para obtener la información más reciente sobre el archivo

Archivo:

  • No es necesario crear una instancia
  • Contiene métodos estáticos
  • No almacene en caché, para que obtenga la información más reciente cada vez que lo use.

src:


Recientemente me enfrenté al problema con File.Exist , odio esta función. Después de que Fileinfo la función Exist clase Fileinfo , mi programa funciona correctamente.

En realidad, lo que sucede en el entorno de desarrollo File.Exist funciona bien, pero cuando va al entorno en vivo, esta función está bloqueando el objeto de archivo debido a ese motivo, estoy obteniendo el acceso denegado y no puedo usar el archivo.

Este es mi aprendizaje. Nunca File.Exist método File.Exist mejor para crear el objeto y luego usarlo. Tenga cuidado de usar métodos estáticos.


Sí, y una de las razones podría ser que, como Nag dijo Files, es una clase de utilidad y, por lo tanto, no se necesita crear ninguna instancia. Al mismo tiempo, dado que File es una clase de utilidad, cada vez requiere una verificación de seguridad.

Por otro lado, FileInfo requiere que se cree una instancia, y ese punto usa la verificación de seguridad. Por lo tanto, ahora realizar operaciones múltiples utilizando FileInfo no invocará las comprobaciones de seguridad.


Un FileInfo puede ser necesario para tratar con las propiedades de Control de acceso. Por lo demás, es una opción Estática versus Instancia y puede elegir lo que sea conveniente.


En general, si está realizando una sola operación en un archivo, use la clase File . Si está realizando múltiples operaciones en el mismo archivo, use FileInfo .

La razón para hacerlo de esta manera es debido a la comprobación de seguridad realizada al acceder a un archivo. Cuando crea una instancia de FileInfo , la comprobación solo se realiza una vez. Sin embargo, cada vez que utiliza un método de File estático, se realiza la comprobación.