Каково различие между Файлом и FileInfo в C#?

Система. Текст. RegularExpressions. Regex. Замена () - то, что Вы ищете - ЕСЛИ Ваши маркеры достаточно нечетны, что Вам нужен regex для нахождения их.

Некоторая добрая душа сделала некоторое тестирование производительности , и между Regex. Замена (), Строка. Замена (), и StringBuilder. Замена (), Строка. Замена () на самом деле преуспела.

66
задан bluediapente 24 August 2009 в 21:06
поделиться

6 ответов

Обычно, если вы выполняете одну операцию с файлом, используйте класс File . Если вы выполняете несколько операций с одним файлом, используйте FileInfo .

Причина, по которой это делается таким образом, заключается в проверке безопасности, выполняемой при доступе к файлу. При создании экземпляра FileInfo проверка выполняется только один раз. Однако каждый раз, когда вы используете статический метод File , проверка выполняется.

81
ответ дан 24 November 2019 в 15:03
поделиться

Для работы со свойствами контроля доступа может потребоваться FileInfo. В остальном это выбор статического или экземпляра, и вы можете выбрать то, что удобно.

3
ответ дан 24 November 2019 в 15:03
поделиться

Файл оптимизирован для одноразовых операций с файлом, FileInfo оптимизирован для нескольких операций с одним и тем же файлом, но в целом нет такой большой разницы между различными реализациями методов.

Если вы хотите для сравнения точных реализаций используйте Reflector для просмотра обоих классов.

3
ответ дан 24 November 2019 в 15:03
поделиться

"Методы классов File и FileInfo похожи, но отличаются тем, что методы класса File статические , поэтому вам нужно передать больше параметров, чем вы бы применили методы экземпляра FileInfo. Это необходимо, поскольку он работает с конкретным файлом; например, метод FileInfo.CopyTo () принимает один параметр для пути назначения, который используется для копирования файла, тогда как метод File Метод .Copy () принимает два параметра для исходного и целевого пути. "

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

6
ответ дан 24 November 2019 в 15:03
поделиться

FileInfo - это экземпляр файла, представляющий собой сам файл. Файл является классом утилиты, поэтому может работать с любым файлом

.
1
ответ дан 24 November 2019 в 15:03
поделиться

Да, и одна из причин может быть в том, что, по словам Нага, Files является служебным классом и, следовательно, создавать экземпляр не требуется. В то же время, поскольку File является служебным классом, каждый раз требуется проверка безопасности.

С другой стороны, FileInfo требует создания экземпляра, и в этом случае используется проверка безопасности. Таким образом, теперь выполнение нескольких операций с использованием FileInfo не будет вызывать проверки безопасности.

2
ответ дан 24 November 2019 в 15:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: