Серьезные основания передать пути как строки вместо того, чтобы использовать DirectoryInfo/FileInfo

Вы можете использовать EasyXLS , который является библиотекой для экспорта файлов Excel.

Проверьте этот код:

DataSet ds = new DataSet();
ds.Tables.Add(dataTable);

ExcelDocument xls = new ExcelDocument();
xls.easy_WriteXLSFile_FromDataSet("datatable.xls", ds, 
           new ExcelAutoFormat(Styles.AUTOFORMAT_EASYXLS1), "DataTable");

См. также этот пример о том, как to export datatable to excel в C # .

17
задан user79755 20 March 2009 в 18:10
поделиться

4 ответа

В целом я думаю, храня информацию в FileInfo/DirectoryInfo, лучше. Существует большая полезная функциональность в этих классах, а также большая безопасность, включенная, в котором намного легче проверить на существование файла, видеть первоначально указанный файл, и т.д.

единственное место, куда я (потенциально) передал бы путь как как строка вместо того, чтобы использовать FileInfo, и DirectoryInfo был бы, если бы путь был переданным через AppDomains или между процессами, и т.д.

FileInfo и DirectoryInfo, оба хорошо работают через границы AppDomain (так как они являются сериализуемыми), но у них есть изрядное количество больше служебное в этой ситуации. Если дела идут назад и вперед много, это могло бы оказать влияние.

я придерживался бы FileInfo и DirectoryInfo в этом случае, тем не менее, если я не нашел, что была значимая проблема во время моего профилирования, и я пытался уменьшить объем сериализированных данных. Если бы я не сталкивался с проблемами производительности, то я придерживался бы использования этих классов, поскольку они обеспечивают большую безопасность и функциональность.

11
ответ дан 30 November 2019 в 13:28
поделиться

Как только путь находится в приложении (т.е. не в конфигурационном файле простого текста), нет, нет серьезного основания.

единственное время (я могу думать) это могло быть полезно, при взаимодействии с кодом, который только принимает пути как строки.

5
ответ дан 30 November 2019 в 13:28
поделиться

DirectoryInfo и FileInfo ужасны тяжелый для того, чтобы раздать, если все, в чем Вы нуждаетесь, является путем. Я был бы более обеспокоен "разделением и серединой и instr" спам. Изучите способы:

Путь. Путь GetFileName
. Путь GetDirectoryName
. Объединение
и т.д.

Это от Системы. Класс IO.Path, btw.

5
ответ дан 30 November 2019 в 13:28
поделиться

Дисплеи управляются файлом настроек /Library/Preferences/com.apple.windowserver.plist :

  1. Флаг определяет, является ли основной дисплей встроенным экраном. Клавиша DisplayMainOnInternal .
  2. Клавиша DisplaySets содержит список наборов дисплеев. Первый набор используется (факт для проверки).
  3. В наборе каждый элемент содержит свойства экрана. Вы столкнулись с проблемами при передаче FileInfo в DMZ. Насколько я понимаю - поправьте меня, если я ошибаюсь - FileInfo выполняет проверку разрешений при десериализации, и это не сработает из DMZ и приведет к «пути не найден». Вместо этого создайте и передайте пользовательский объект с вашими данными.

0
ответ дан 30 November 2019 в 13:28
поделиться
Другие вопросы по тегам:

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