Удаление файлов в ISO-образе с помощью C #

Я разрабатываю приложение на C #, которое создает образ ISO с CD / DVD, а затем оно позволяет пользователю удалять файлы, содержащиеся в файле Iso, но пока я не нашел способа сделать это. Пожалуйста, если у вас есть идеи. заранее спасибо


person user2407200    schedule 26.05.2013    source источник
comment
Я подозреваю, что это невозможно сделать на месте из-за неструктурированной природы формата ISO, и что для этого вам придется создать новый ISO без удаленных файлов.   -  person Joe    schedule 27.05.2013
comment
Не совсем верно, у файла ISO есть структура, поскольку все записи представляют собой связанное дерево. И все дочерние записи каталога составляют последовательный массив, первый индекс которого является самореференциальной записью в каталоге.   -  person iceflow19    schedule 26.03.2016


Ответы (1)


Вам просто нужно изменить порядок, в котором работает ваша программа. Сначала прочтите иерархию файлов, затем позвольте пользователю выбрать, какие файлы удалить, а затем запишите оставшиеся как файл ISO. Вы должны иметь возможность хранить файлы и каталоги в древовидной структуре данных. Удаление папки или файла приведет к удалению соответствующего узла или листа.

Что касается вопроса прямого удаления файла или каталога в образе ISO, применяются те же правила, что и в ISO9660 (ECMA-119) по сути представляет собой сериализованную древовидную структуру. Просто обнулите соответствующие записи для поддеревьев и листьев, которые вы хотите удалить. Однако учтите, что при таком подходе на изображении останется место для мусора. И чтобы действительно уменьшить размер изображения, вам нужно будет выполнить операцию сжатия изображения (повторно сериализовать иерархию в новый файл).

person iceflow19    schedule 26.03.2016