Генерируемые имена в OLEStorage
Пишу я в delphi 6.
Так уж получилось.
Встала задача создавать в OLEStorage (или COMStorage кому как больше нравится) полную копию указанной папки, т.е. с деревом и файлами и их контентом. Проблема вылезла откуда не ждали. Оказывается не возможно создавать файлы и подкаталоги длинна имени которого больше 31 символа. А следить за таким именованием, ясное дело, никто не собирается. Думал я думал и надумал: а не запихать ли в сторадж файлик со структурой исходного дерева, а потоки и подкаталоги назвать просто сплошной нумерацией. Но тут у меня куча вопросов.
1. Как сопоставить исходное название и нумерованное при извлечении.
2. Как обеспечить выборку из такого хранилища.
3. Проблема в самом создании у меня всё создавалось по путям, т.е. \folder\folder\file, естественно, проверялось при создании есть хоть часть этого пути или нет, что бы не перезаписать уже созданную структуру, а теперь как я смогу сверять путь если он цифровой а на в ходе путь типа \folder.
Возможно, есть типовое решение такой проблемы, но признаюсь, я не знал что ввести в поиске(
За ранее благодарен за помощь.
И уже чё угодно делать с архивом. Я не вдавался в подробности OLEStorge.
или я не верно понял?(
или я не верно понял?(
Я вообще не вдавался в подробоности OLEStorage, я даже назначение его смутно понимаю.
Зачем решать задачу, которая уже решена в других программах? Берем, к примеру, WinRAR: с ключом -os он умеет работать с NTFS потоками. Если, же нужна производительность, то паковать можно без сжатия.
Зачем решать задачу, которая уже решена в других программах? Берем, к примеру, WinRAR: с ключом -os он умеет работать с NTFS потоками. Если, же нужна производительность, то паковать можно без сжатия.
Всё, теперь понял. Такой вариант я тоже предлагал, но вот нужна возможность тянуть по дному файлу т.к. модуль по работе с storage будет прикручен к проге, которая будет работать со структурированным storage т.е. как это делал word до 2007-ой версии:( В Storage это легко делается и файлик этот будет в блобе СУБД, вот такие навороты:) Ну что ж одно решение проблемы есть - отказ от Storage и переход к архиваторам.)