Я в настоящее время изучаю C# во время своих исследований, и я пишу небольшое приложение базы данных фильма в нем. Я знаю, что не хороший сохранил картинки (и т.д.) в базе данных, особенно при добавлении покрытий фильма, которые являются довольно большими. Но я не хочу, чтобы файлы просто были сохранены в папке, поскольку это создает путаницу, если все больше фильмов добавляется к списку.
Делает любой знает способ хранить файлы в своего рода контейнерный файл (как covers.xxx). Затем тот контейнер содержит все покрытия в одном большом файле, файлы могут затем быть получены с адресом или именем.
Спасибо :)
http://dotnetzip.codeplex.com/
Используйте указанную выше библиотеку и следующий фрагмент кода.
using (ZipFile zip = new ZipFile())
{
// add this map file into the "images" directory in the zip archive
zip.AddFile("c:\\images\\personal\\7440-N49th.png", "images");
// add the report into a different directory in the archive
zip.AddFile("c:\\Reports\\2008-Regional-Sales-Report.pdf", "files");
zip.AddFile("ReadMe.txt");
zip.Save("MyZipFile.zip");
}
Я не вижу, почему хранение файлов в двоичном виде в базе данных обязательно является плохой идеей.
Однако, если это определенно исключено, то похоже, что вам нужен способ хранения несжатой компиляции файлов - по сути, .zip, который не сжат. Вы можете добиться этого, создав файл, который представляет собой просто данные нужных вам файлов, сложенные вместе с какой-то уникальной строкой заголовка между ними, которую вы можете разделить при чтении из файла. В конечном счете, это имитация базовой файловой БД, поэтому я не уверен, чего вы добьетесь, но это идея.