Как сохранить группу файлов, указанных пользователем? - PullRequest
2 голосов
/ 13 мая 2011

Я пишу новое настольное приложение на c #, которое позволит пользователям выбирать группу файлов изображений, которые приложение должно запомнить.У меня также есть некоторые другие настройки для сохранения, которые я собирался сохранить как файл XML вместе с указанными файлами.Я думал о том, чтобы попытаться сохранить файлы вместе в виде файла типа zip / cab или чего-то подобного, вроде файла .war или .docx.Таким образом, когда пользователь возвращается, он может выбрать свой файл и получить все, что ему нужно.Таким образом, пользователь не сможет (легко) удалить необходимый файл.Минусы: файл может быть довольно большим, тем более что он может содержать файлы изображений.

Но потом я подумал о том, как Visual Studio хранит вещи в своих файлах проекта (.cproj), которые являются указателем на определенные файлы в папке.Это кажется хорошим решением также.Пройдя по этому пути, я должен добавить еще одну проверку ошибок, чтобы убедиться, что пользователь не удалил файл.Я не уверен, если это будет из-за кода, необходимого для сжатия / распаковки файлов, хотя.

Есть какие-нибудь указатели на какой путь будет лучше?Есть плюсы / минусы любого из методов?

Ответы [ 2 ]

1 голос
/ 13 мая 2011

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

0 голосов
/ 13 мая 2011

Хмммм ... так как вы все равно рассматриваете наличие файла XML, я бы посмотрел на сохранение данных изображения в виде раздела CDATA в файле XML, из этого они могут быть воссозданы (и изображения не получатся"потерян" или "перемещен").

Хотя это может привести к довольно большому XML-файлу, вы всегда можете сжать его, как только он превысит определенный размер (до определенного размера не будет возврата всжатие, время, которое требуется для распаковки, может быть больше, чем время загрузки несжатой версии).

Включение его в файл XML также устраняет необходимость использования базы данных для хранения - хотя использованиеSQLCompact также может быть приемлемым вариантом (вы можете просто сохранить изображение в базе данных).

...