внесения некоторых изменений в приложение, которое я унаследовал, и во многих местах исходного код использует это, чтобы получить имя файла без пути:Стоит ли заменить FileInfo.Name() на Path.GetFileName()?
string filename = "C:\path\to\abc.xyz";
FileInfo fi = new FileInfo(filename);
string newfilename = Path.Combine(otherpath, fi.Name);
Там нет необходимости, чтобы проверить, если файл существует или имеет доступ к любым другим свойствам фактического файла, просто нужно извлечь часть имени полного пути.
Это не приложение в режиме реального времени, но его производительность важна. Я все еще изучаю .NET framework и C# и вижу, что создание объектов FileInfo
и DirectoryInfo
имеет некоторые накладные расходы, которые во время выполнения зависят от нагрузки ОС в ОС.
Мой первый шаг был превратить это в:
string newfilename = Path.Combine(otherpath, Path.GetFileName(filename));
Есть десятки строк, в которых используется тот же исходный код. Является ли моя озабоченность по поводу того, что этот код зависит от ИО, и я исправлю в предположении, что мои изменения устранили бы эту зависимость?
Ничего себе, уже некоторые ненавидят. Что с тобой, люди? – ajeh
_Impressions_ можно легко подтвердить или опровергнуть, если вы _measure_ – Steve
^перевод: почему бы вам не попробовать в обоих направлениях и запустить несколько тестов, чтобы узнать, какой из них требуется больше времени? –