"файловый архив"
От: HotDog Швейцария www.denebspace.com
Дата: 11.01.07 14:17
Оценка:
Есть куча фалов, которые нужно таскать вместе с приложением. Делается только read only этих файлов.
Может кто то видел в инете классы которые позволяют "упаковывать" все в один файл, и позволяют из этого "архива" читать нужные файлы? Сама по себе задача не сложная, можно и самому написать, но не охота велосипед изобретать.
Re: "файловый архив"
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 11.01.07 14:25
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Есть куча фалов, которые нужно таскать вместе с приложением. Делается только read only этих файлов.

HD>Может кто то видел в инете классы которые позволяют "упаковывать" все в один файл, и позволяют из этого "архива" читать нужные файлы? Сама по себе задача не сложная, можно и самому написать, но не охота велосипед изобретать.

А zip-архив не устроит? Есть SharpZipLib...
Re: "файловый архив"
От: Хитрик Денис Россия RSDN
Дата: 11.01.07 15:05
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Есть куча фалов, которые нужно таскать вместе с приложением. Делается только read only этих файлов.

HD>Может кто то видел в инете классы которые позволяют "упаковывать" все в один файл, и позволяют из этого "архива" читать нужные файлы? Сама по себе задача не сложная, можно и самому написать, но не охота велосипед изобретать.

А обычная папка в директории программы для этих целей не подойдёт? Почему хочется в один файл обязательно запихать?
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
Re[2]: "файловый архив"
От: HotDog Швейцария www.denebspace.com
Дата: 11.01.07 15:46
Оценка:
Здравствуйте, nzeemin, Вы писали:

N>А zip-архив не устроит? Есть SharpZipLib...


Да тяжеловат он для этого. Кроме того было бы не желательно чтобы пользователи могли просто взять и распаковать архив, что то изменить и снова собрать.
Re[2]: "файловый архив"
От: HotDog Швейцария www.denebspace.com
Дата: 11.01.07 15:49
Оценка:
Здравствуйте, Хитрик Денис, Вы писали:

ХД>А обычная папка в директории программы для этих целей не подойдёт? Почему хочется в один файл обязательно запихать?


По причине того, что

1. "Ой а что будет, если я удалю этот файлик?" (с) Леночка
2. Придется контролировать целостность/версионность отдельных файлов.
Re: "файловый архив"
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.01.07 04:58
Оценка: 1 (1)
Здравствуйте, HotDog, Вы писали:

HD>Есть куча фалов, которые нужно таскать вместе с приложением. Делается только read only этих файлов.

HD>Может кто то видел в инете классы которые позволяют "упаковывать" все в один файл, и позволяют из этого "архива" читать нужные файлы? Сама по себе задача не сложная, можно и самому написать, но не охота велосипед изобретать.
Используй Enbedded Resources. Хотя твои пожелания по контролю целостности и по пользовательским модификациям друг другу противоречат.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: "файловый архив"
От: sharcUs Беларусь http://sharcus.blogspot.com/
Дата: 12.01.07 07:06
Оценка:
HD>1. "Ой а что будет, если я удалю этот файлик?" (с) Леночка

будет тоже самое если удалить файл архива
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: "файловый архив"
От: HotDog Швейцария www.denebspace.com
Дата: 12.01.07 08:12
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

S>Используй Enbedded Resources.


Embedded Resources? Это в dll или exe воткнуть? Сейчас так и сделано, но количество файлов постоянно увеличивается и размеры файла растут (сейчас это dll под 10 Mb). А грузить 10 Mb в память ради того что бы прочитать пару фаликов по 30 Kb довольно накладно.

S>Хотя твои пожелания по контролю целостности и по пользовательским модификациям друг другу противоречат.


Мне не нужно что бы пользователь мог их модифицировать. Нужен простой Read Only blob из которого можно было бы читать.

Ну ок.. я так понимаю ничего готового никто не видел. Придется самому написать. Там делов то на час работы максимум.
Re[4]: "файловый архив"
От: HotDog Швейцария www.denebspace.com
Дата: 12.01.07 08:14
Оценка:
Здравствуйте, sharcUs, Вы писали:

HD>>1. "Ой а что будет, если я удалю этот файлик?" (с) Леночка


U>будет тоже самое если удалить файл архива


Да, но проверить наличие одного файла проще, чем отсутсвие нескольких среди 2 тысяч других
Re[3]: "файловый архив"
От: migel  
Дата: 12.01.07 08:33
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Здравствуйте, Sinclair, Вы писали:


S>>Используй Enbedded Resources.


HD>Embedded Resources? Это в dll или exe воткнуть? Сейчас так и сделано, но количество файлов постоянно увеличивается и размеры файла растут (сейчас это dll под 10 Mb). А грузить 10 Mb в память ради того что бы прочитать пару фаликов по 30 Kb довольно накладно.


S>>Хотя твои пожелания по контролю целостности и по пользовательским модификациям друг другу противоречат.


HD>Мне не нужно что бы пользователь мог их модифицировать. Нужен простой Read Only blob из которого можно было бы читать.


HD>Ну ок.. я так понимаю ничего готового никто не видел. Придется самому написать. Там делов то на час работы максимум.

Ну почему же. Есть реализации MS CompoundStorage на чистом нете —
здесь
тут например просто враппер
... << RSDN@Home 1.2.0 alpha rev. 644>>
Re[4]: "файловый архив"
От: HotDog Швейцария www.denebspace.com
Дата: 12.01.07 09:35
Оценка:
Здравствуйте, migel, Вы писали:

Спасибо за линки, было интересно глянуть

M>Ну почему же. Есть реализации MS CompoundStorage на чистом нете —

M>здесь

Глянул рефлектором...читают от A до B в MemoryStream и отдают его. $250 за такую шнягу? Денег жалко

M>тут например просто враппер


Брр.. ну во первых исходников нету (рефлектор конечно может помочь) а во вторых придется ходить через COM,,, Ну его.
Re[3]: "файловый архив"
От: fmiracle  
Дата: 12.01.07 09:41
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Embedded Resources? Это в dll или exe воткнуть? Сейчас так и сделано, но количество файлов постоянно увеличивается и размеры файла растут (сейчас это dll под 10 Mb). А грузить 10 Mb в память ради того что бы прочитать пару фаликов по 30 Kb довольно накладно.



HD>Мне не нужно что бы пользователь мог их модифицировать. Нужен простой Read Only blob из которого можно было бы читать.




Можно применить SQLite — возможно несколько избыточно, но вполне вариант. Он позволяет хранить любые данные в себе, при этом база представлена одним файлом, а ее размер лишь немного больше суммарного объема файлов, работает быстро.
Re[3]: "файловый архив"
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.01.07 09:46
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Embedded Resources? Это в dll или exe воткнуть?

Да.
HD>Сейчас так и сделано, но количество файлов постоянно увеличивается и размеры файла растут (сейчас это dll под 10 Mb). А грузить 10 Mb в память ради того что бы прочитать пару фаликов по 30 Kb довольно накладно.
Можно компрессировать через GZipStream. Есть непроверенное подозрение, что использование GetManifestResourceStream совместно с ReflectionOnlyLoadFrom не станут выполнять немедленную загрузку всей assembly в память.

HD>Ну ок.. я так понимаю ничего готового никто не видел. Придется самому написать. Там делов то на час работы максимум.

Ну удачи.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: "файловый архив"
От: Pavel M. Россия  
Дата: 12.01.07 09:46
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Здравствуйте, nzeemin, Вы писали:


N>>А zip-архив не устроит? Есть SharpZipLib...


HD>Да тяжеловат он для этого. Кроме того было бы не желательно чтобы пользователи могли просто взять и распаковать архив, что то изменить и снова собрать.


буд-то просто файл они изменить не могут
--------------------------
less think — do more
Re: Как получить Windows Product ID?
От: _ICE_ Украина  
Дата: 12.01.07 14:40
Оценка:
Для этого существуют ресурсные файлы, и ResourceManager. В результате все ресурсные файлы вкомпиливаются в бинарники.
Re[4]: "файловый архив"
От: bazilxp  
Дата: 12.01.07 15:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, HotDog, Вы писали:


HD>>Embedded Resources? Это в dll или exe воткнуть?

S>Да.
HD>>Сейчас так и сделано, но количество файлов постоянно увеличивается и размеры файла растут (сейчас это dll под 10 Mb). А грузить 10 Mb в память ради того что бы прочитать пару фаликов по 30 Kb довольно накладно.
S>Можно компрессировать через GZipStream. Есть непроверенное подозрение, что использование GetManifestResourceStream совместно с ReflectionOnlyLoadFrom не станут выполнять немедленную загрузку всей assembly в память.

HD>>Ну ок.. я так понимаю ничего готового никто не видел. Придется самому написать. Там делов то на час работы максимум.

S>Ну удачи.

SharZipLib + криптография стандартная .net если волнует секюрити=)
Re: &quot;файловый архив&quot;
От: Аноним  
Дата: 11.01.07 14:48
Оценка:
если не нравят сторонние библиотеки, то в 2.0 есть System.IO.Compression.GZipStream


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: &quot;файловый архив&quot;
От: Аноним  
Дата: 12.01.07 09:38
Оценка:
Как вариант, реализовать хранилище с использованием одного из встроенных SQL-серверов.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.