Папка и файл.
Например, у меня есть файл S.S я запускаю свою программку и Windows начинает думать что S.S это каталог
Есть два способа решения проблемы:
- написать драйвер для конкретного формата файла, который будет представлять его папкой на уровне Windows
- найти в Сети ZipMagic, скачать, поставить, увидеть, что он делает, сказать "уй, блин!" и больше не париться подобными проблемами
И я думаю, что это не так сложно, ведь что такое папка - это тоже информация, хранящаяся на диске. Возможно это даже тот же файл только с каким-то особым форматом, который никто не знает и с каким-нибудь специфическом набором атрибутов. Ведь Windows как-то должна определять, что перед ней директория, а не файл. Так известно, что если файл имеет атрибут FILE_ATTRIBUTE_DIRECTORY, то он директория! Но вот банальное присвоение файлу этого атрибута файлу не преобразует его в директорию.
Можно поподробнее о пункте а!
ИМХО, драйвер на Дельфи не напишешь.
ИМХО, драйвер на Дельфи не напишешь.
Это не IMHO, это факт.
Это не IMHO, это факт.
В данном контексте можно трактовать "драйвер файла" более широко. Я уже не помню, использует ли ZipMagic настоящие драйверные модули, вроде .VxD или .SYS.
Если же на первых порах с ними не связываться, можно написать просто модуль оболочки, представляющий файлы папками только на уровне оболочки.
Наверное, ZipMagic все-таки использует драйверные модули, поскольку zip-файлы были видны как папки и через Far.
Кстати мне пока хотелось бы просто сделать что бы файл выглядел в Windows как папка, а уж будет он заходить в нее или будет генерить ошибку - пока не важно!
Ну, а в XP там же тоже такая фича была, если не ставить архиваторы, то он известные ему архивы изображает как папки на "замочках", мож можно этого же добиться и с другими файлами (Для начала хотябы)?
XP не добавляет ничего принципиально нового - просто еще один архиватор, только на этот раз от Майкрософт. И работает он точно также, как и все остальные.
ZipFolder XP является модулем shell, поэтому результаты его работы видны только на уровне оболочки и недоступны другим программам, например, Far. Как я уже говорил, ZipMagic этим и отличается, что работает на всех уровнях.
Или можно как-нибудь использовать драйвера ZipMagica?
Только если стоит задача написать собственный ZipMagic.
Кстати мне пока хотелось бы просто сделать что бы файл выглядел в Windows как папка, а уж будет он заходить в нее или будет генерить ошибку - пока не важно!
А вот это уже действительно глупо. Зачем? Если представлять файл папкой, подразумевается, что он является контейнером и должен раскрывать свое содержимое цивилизованным образом.
ZipMagic`у удается представлять свои файлы папками?
Интересно, какой алгоритм выполняет Windows, когда необходимо открыть папку. Наверняка он читает с диска информацию о том, что в папке содержится и где все это находиться, но в таком случае ZipMagic каким-то образом эмулирует структуру папки. Вот хотя бы эту "структуру" папки узнать, где нибудь.
Помойму ZipMagic без драйверов обходиться, запускаешь прогу и все zip-фалы папками делаються, выключаешь все назад возвращаеться.
Посмотри, в его составе должны быть файлы с расширением .SYS. Это и есть драйвера. Возможно, он копирует их в папку драйверов - %SystemRoot%\System32\Drivers
sharik ti balbes ... na Delphi mojno vse, nujno tol`ko ruki rovnie imet` ... i znat` neskol`ko API functsiy ...:!!!: