我编写了一个利用Java控制光驱的打开与关闭,并从光盘中拷贝文件到本地磁盘的一个工具类.
注意:此工具类只适合最基本的从CD\DVD上拷贝文件到本地,不适合其抓取音轨等复杂操作.
package com.multiable.Composite;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileSystemView;
/**
* A program to Open CD drive using VB script with the help of JAVA
* @author mark.wang
*
*/
public class CDUtils {
private CDUtils() {
}
// 利用VB script 打开光驱
public static void open(String drive) {
try {
File file = File.createTempFile("realhowto", ".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);
String vbs = "Set wmp = CreateObject(\"WMPlayer.OCX\") \n"
+ "Set cd = wmp.cdromCollection.getByDriveSpecifier(\""
+ drive + "\") \n cd.Eject";
fw.write(vbs);
fw.close();
Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
// 利用VB script 关闭光驱
public static void close(String drive) {
try {
File file = File.createTempFile("realhowto", ".vbs");
file.deleteOnExit();
FileWriter fw = new FileWriter(file);
// to close a CD, we need eject two times!
String vbs = "Set wmp = CreateObject(\"WMPlayer.OCX\") \n"
+ "Set cd = wmp.cdromCollection.getByDriveSpecifier(\""
+ drive + "\") \n cd.Eject \n cd.Eject ";
fw.write(vbs);
fw.close();
Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
// 获取所有光驱的盘符列表
public static ArrayList<File> findCDWin32() {
FileSystemView fsv = FileSystemView.getFileSystemView();
File[] roots = fsv.getRoots();
if (roots.length == 1) {
roots = roots[0].listFiles()[0].listFiles();
} else {
System.out.println("I guess you're not on Windows");
return null;
}
ArrayList<File> foundDrives = new ArrayList<File>();
for (int i = 0; i < roots.length; i++) {
if (fsv.isDrive(roots[i])) {
if (fsv.getSystemTypeDescription(roots[i]).indexOf("CD") != -1) {
foundDrives.add(roots[i]);
}
}
}
return foundDrives;
}
public static void main(String[] args) {
String cdDrive = "";
if(findCDWin32().size() > 0) {
File file = findCDWin32().toArray(new File[0])[0];
cdDrive = file.getPath();
} else {
return;
}
// open the cd-rom
JOptionPane.showConfirmDialog((java.awt.Component) null, "Press OK to open CD", "CDUtils",
javax.swing.JOptionPane.DEFAULT_OPTION);
CDUtils.open(cdDrive);
}
}
分享到:
相关推荐
一台机器可能有不止一个CD-ROM驱动器。现在CD-ROM已经是PC机的标准配置,此外再装个可擦写的光盘驱动,甚至是DVD都是很常见的事情。不管一台机器上装多少个不同的驱动器,如何找到它们呢?请用下程序
ISO文件本质上是CD-ROM或DVD-ROM的一种标准镜像格式,名为ISO 9660,它允许我们将磁盘内容复制成一个单一的二进制文件,以便于在网络上传输、存储或刻录到物理光盘上。 **ISO文件的结构** ISO文件遵循ISO 9660文件...
8. **光驱(Compact Disk Read Only Memory, CD-ROM)**:用于读取CD光盘的设备。随着技术发展,现在更多使用DVD-ROM和蓝光驱动器。 9. **DVD光驱(Digital Versatile Disk Read Only Memory, DVD-ROM)**:用于...
19. **CD-ROM速度**:8倍速CD-ROM驱动器的数据传输速率为900KB/s,这是CD-ROM的读取速度标准。 以上知识点涵盖了计算机基础的各个方面,对于理解和掌握计算机基本原理至关重要。在学习过程中,理解和应用这些知识点...
6. 微机系统最基本的输出设备是显示器,而非CD-ROM,CD-ROM是光驱,用于读取光盘上的数据。 7. 操作系统的功能包括管理硬件和软件资源,提供用户接口,以及支持软件开发和运行的环境,描述正确。 8. SQL查询中,`...
- 光驱:CD-ROM光驱,如先锋DVR-218CHV,提供数据读取功能。 三、计算机应用领域 当前计算机应用广泛,涵盖办公自动化、图形图像处理、多媒体娱乐、网络通信、科学计算、游戏开发等多个领域。 四、流行开发软件 ...
- **开发环境**:Java Applet的开发和运行需要JDK(Java Development Kit)的支持,编译后的字节码文件可在任何支持JVM的环境中执行。 ### 文本字段容量限制 - **知识点概述**:在数据库设计和应用开发中,对于...
CD-ROM通常被认为是外部设备,因为它并不直接集成在计算机的主要硬件组件中,而是需要通过光驱等外部装置接入计算机进行读取。 ### 4. 向表中连续添加记录的方法 - **知识点**: 如何在数据库中连续添加多条记录。 ...
9. **CD-ROM**:CD-ROM是一种只读光盘,属于计算机的外部存储设备(第9题)。 10. **二分查找**:在有序列表中进行二分查找,最坏情况下的比较次数是O(logn)(第10题)。 11. **SQL查询**:在SQL中,使用`DISTINCT...
- "CD-ROM"和"DVD-ROM"代表只读型光盘驱动器,用于读取CD和DVD盘片。 - "RAM"代表随机存取存储器,是计算机的主存储设备,用于暂存运行程序的数据和指令。 - "ROM"代表只读存储器,通常用于存储固件和启动程序。 ...
通过阅读和分析源码,人们可以了解如何使用编程语言(如C++, Python, 或者Java)来与光驱进行交互,读取光盘信息,并进行解析和展示。 “工具”标签则暗示这是一款实用软件,它的目的是为了帮助用户完成特定的任务...
- 提供的是 ISO 文件,建议使用虚拟光驱读取 ISO 文件来创建 VMWare Image。 - 建议安装 FTP 和 TELNET 服务,并安装所有软件包。 2. **VMWare Workstation**: - 版本:VMware-workstation-4.5.2-8848.exe - ...
- **CD-ROM/CD-RW/DVD-ROM/DVD-RW**: 不同类型的光盘驱动器,用于读取或写入光盘数据。 - **Modem**: 调制解调器,允许通过电话线进行数据传输。 - **Motherboard**: 主板,连接所有电脑组件的基础电路板。 - **...
2. DVD-ROM:DVD-ROM是一种大容量只读外部存储器,类似于CD-ROM,用于存储大量数据,如电影、音乐或软件。 3. 软件开发效率:为了提高开发效率,开发者通常会选择使用高级语言,如Java、Python或C++,因为它们具有...
这段代码会打印出所有驱动器的名称(如"C:")、驱动器类型(如"固定磁盘"、"可移动磁盘"、"CD-ROM")、总容量和可用空间。值得注意的是,驱动器的图标信息并不直接包含在`DriveInfo`对象中,通常需要额外的系统调...
25. 微机系统的基本输出设备:微机系统最基本的输出设备包括显示器和打印机,CD-ROM是光驱,用于读取光盘数据。 26. SQL功能:SQL支持数据定义(DDL)、查询(DQL)、操纵(DML)和控制(DCL)等功能。 27. 未提供...
10. 只读光盘的缩写:第十题中,只读光盘的英文缩写是CD-ROM(D选项)。 11. CPU与存储器:第十一题提到CPU不能直接访问的存储器是光盘(D选项),因为光盘是只读存储,通常需要通过光驱读取。 12. 存储器容量单位...
- **硬件配置**:光驱用于读取CD/DVD中的多媒体文件;声卡用于音频输出;扬声器播放声音。 #### 18. Servlet中的输出流 - **知识点解析**: - **Servlet**是Java平台上的服务器端应用程序框架,用于生成动态Web...
21. 微机系统的最基本输出设备是显示器和打印机,CD-ROM是光驱,属于输入设备。 22. 字符'1'的ASCII值比'0'大1,'b'自增后变为'c',ASCII值为99,所以输出为'c'和50(99-48)。 23. 关系数据库中的关键字(Primary...
21. 光盘(如 CD、DVD、蓝光光盘)中的数据不能直接被 CPU 存取,需要通过光驱读取。 22. 24 位真彩色能表示 2 的 24 次方种颜色,即约 16777216 种颜色。 23. 十六进制数 7777 转换成二进制数是 111100110000011...