前几天因为工作需要开发一个硬件设备带有光盘刻录功能,当时想着东西应该很简单。光盘刻录应该都是成熟的技术了,调用点api或者封装的类文件就应该轻松实现,但是显示果然很骨感,当头一棒。彻底把我从梦里打醒。今天写个文章记录一下,方便自己和码友们。
IBurnCD bcd = IBurnCD.CreateInstance();
List<string> strRecorder = bcd.GetRecorderList(); //进行刻录前准备 获取电脑存在刻录机集合
string cd_url = strRecorder[0];//获取刻录机路径
IRecorder record = null;
record = bcd.GetRecorder(cd_url);//根据光驱路径获取光驱对象
string res = record.GetCDISOK();//判断光驱是否放入光盘
if (res != string.Empty)
{
record.EjectMedia();//弹出光驱
}
else
{
long cd_EmptySize = GetMB(record.GetDiskSize());//光盘容量 返回值单位是字节 转换成MB
long cdSize_MB = GetMB(record.GetDiskUseableSize());//光盘可用容量
string strFileUrl = Application.StartupPath + "//FIleCD";
IBurnMedia bm2 = record.AddMediaFile();
bm2.Path = strFileUrl;
//bm2.Type = MediaType.File;//刻录文件就选这个
bm2.Type = MediaType.Dir;//刻录文件夹就选这个
bool bRet = record.Burn();//开始刻录
if (bRet)
{
//刻录结束
//弹出光盘
record.EjectMedia();
}
else
{
MessageBox.Show("刻录失败!");
}
核心代码如上,基本开发个刻录光盘功能足够使用了,至于一些个性化设置可以用上面的方法自行组合。完成代码请到下放地址下载:https://download.csdn.net/download/qq_36587639/23383598https://download.csdn.net/download/qq_36587639/23383598