En computación, en realidad no existe una "operación costosa", a menos que se tenga en cuenta lo caro que es.
Por ejemplo, en el mundo real, $ 2.000.000 para un objeto sería costoso? ¿Qué pasa si es el precio de Bahamas? ¿Sería caro entonces? ¿Qué tal un cartón de leche? ¿Eso es caro?
Lo que debe tener en cuenta es que File.Exists
es costoso en términos de la operación general que pretende realizar, y si realmente tiene alguna alternativa.
Si no tiene ninguna alternativa, ¿importa si es cara o no?
Por ejemplo, si lo hace 1 compruebe si el archivo existe, y luego si lo hace, lo carga y pasa una hora procesándolo, entonces supongo que no se consideraría costoso.
Sin embargo, si lo llama 10 veces en un solo bucle, para averiguar si existe un archivo, y luego si lo hace, simplemente incremente un número, entonces podría ser la operación más cara que haga allí.
La única forma de que pueda estar seguro es en realidad medir cuánto tiempo lleva esa llamada de método, en comparación con el resto en la misma operación.
definen "gran ambiente" – jldupont
También tenga en cuenta que File.Exists() casi nunca necesita ser llamado.Por lo general, se usa para validar una operación IO futura, pero realmente no puede hacer eso, porque la existencia del archivo puede cambiar entre el momento en que se llama Exists y el momento en que se realiza la operación IO. Por lo general, es mejor intentar la operación que se está validando y ver si funciona. Obviamente, hay muchos contraejemplos de esto, y su aplicación puede calificar como uno de ellos. –
Otro ejemplo de IO.File.Exists que se usa es ver si existe una imagen antes de mostrarla y mostrar una alternativa si no es así. – SteveGSD