Записать файлы на компакт-диск с помощью С#

Я пишу программу, которая загружает изображения на жесткий диск, а затем я хочу записать папки, на которые они все разделены, на компакт-диск. Я не хочу создавать и записывать образ, я просто хочу взять все эти папки и файлы и записать их на диск так же, как они находятся на жестком диске. Кто-нибудь знает, как это сделать на С#?

Я использую Windows 7 и Visual Studio 2008.


person Bryan    schedule 25.06.2012    source источник


Ответы (4)


IMAPI2 — версия 2 API IMAPI — встроен в Windows 7 и является предпочтительным интерфейсом.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366457(v=vs.85).aspx

person ScottTx    schedule 25.06.2012

Невозможно сделать это, не вызывая вызовы API в Windows. Похоже, это делается с помощью вызовов COM(ICDBurn для XP, MAPI для Windows Vista или новее). Вот вопрос SO, который может указать вам правильное направление в том, как это сделать на C++ .

Если вам нужна помощь в выполнении COM-вызовов на C#, не стесняйтесь открывать новый вопрос по проблеме, с которой вы столкнулись.

person Scott Chamberlain    schedule 25.06.2012

Начиная с Windows Vista, вы можете использовать IMAPI API. Этот API позволяет записывать изображения на CD, DVD и Blu-ray.

Более подробную информацию об Image Master API можно, конечно, найти в MSDN:

http://msdn.microsoft.com/en-us/library/aa366450(v=VS.85).aspx

Ознакомьтесь с этой статьей CodeProject, в которой подробно рассказывается об этом:

Другой сторонней библиотекой, которая может помочь, является SharpRecorder. Код размещен в Google. Взгляните на это, чтобы увидеть, соответствует ли он вашим требованиям. Если нет, вы всегда можете получить доступ к коду и посмотреть, как он работает, и извлечь из него уроки.

person Christophe Geers    schedule 25.06.2012

Есть несколько способов сделать это с помощью C# и IMAP2. Вот пример на Проект кода

Также есть еще один пример здесь с использованием С#

примечание: если вы делаете это на 7, вам понадобится это обновление

person Micah Armantrout    schedule 25.06.2012