khaleelsyed Ответов: 1

Значение расширения файла


Является ли хорошей практикой использовать нижеприведенную строку кода для получения расширения файла

item.FileName.Split('.')[1]



любые предложения и комментарии приветствуются.

Что я уже пробовал:

item.FileName.Split('.')[1]

1 Ответов

Рейтинг:
8

Richard MacCutchan

Возможно, но ваш код предполагает, что в имени есть только одна точка. Если вы посмотрите в каталог проекта любого проекта C#, то увидите несколько файлов с именами, включающими две точки. Поэтому вы должны использовать что-то вроде:

string[] parts = item.FileName.Split('.');
string extension = parts[parts.Length - 1];

что будет работать для любого количества точек.

[редактировать]
Или, как отмечает F-ES Sitecore ниже, используйте System.IO.Path.GetExtension
[/редактировать]


F-ES Sitecore

Разбиение на массив не является эффективным для памяти. В системе есть функция.Пространство имен IO, которое уже делает это (System.IO.Path.GetExtension), так что нет смысла заново изобретать колесо.

Richard MacCutchan

Мне было бы интересно узнать, какой код он использует.

F-ES Sitecore

Он начинается с последней буквы и идет назад, ища".", а затем делает подстроку в этой точке. Потенциально раздражающая вещь о GetExtension заключается в том, что она также возвращает точку. Если вы действительно этого не хотите, то можете использовать LastIndexOf вместо этого.

Richard MacCutchan

Спасибо, напомнил мне, что у меня есть ссылка на него .Чистый справочный источник так что можете сами убедиться.

Richard Deeming

Вы можете увидеть источник практически для любого метода BCL по адресу sourceof.net[^]:
опорный источник[^]

Richard MacCutchan

Смотрите мой комментарий выше.

Richard Deeming

Д'О!