`
l4432848
  • 浏览: 255306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

U盘发现器

    博客分类:
  • java
阅读更多

U盘发现器

package com.lx.io;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

public class USBreadFile {
/**
     * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com 

    * @author 小沫
    */
	public static void USB() {

		File[] files = File.listRoots();//列出当前所有盘符
		//准备好集合,把所有盘符数据添加进去
		ArrayList<File> f1 = new ArrayList<>();
		ArrayList<File> f2 = new ArrayList<>();

		long sum;// 盘符总大小
		long surplus;// 盘符剩余大小
		long use;// 盘符已使用大小

		while (true) {
			File[] newfiles = File.listRoots();//获得到新盘符
			if (newfiles.length > files.length) {//如果新的盘符大于原来盘符
				//用Arrays工具把数组转换成集合在添加进集合
				f1.addAll(Arrays.asList(files));
				f2.addAll(Arrays.asList(newfiles));
				f2.removeAll(f1);//在f2和f1里面找到相同的数据进行删除掉
				for (File file : f2) {
					try {
						char[] c = file.getPath().toCharArray();//把路径拆分成字符
						System.out.print("插入:" + c[0] + " 盘");
						sum = file.getTotalSpace() / 1024 / 1024 / 1024;
						surplus = file.getUsableSpace() / 1024 / 1024 / 1024;
						use = sum - surplus;
						//列出每个盘符的信息
						System.out.println(c[0] + "盘总大小:" + sum + "G" +
						" 剩余:" + surplus + "G" + " 已用:" + use + "G");
						//用Runtime方法打开插入进去的U盘
						Runtime.getRuntime().exec("cmd /c start " + file.getPath());
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
				files = newfiles;//更新盘符
			} else if (newfiles.length < files.length) {//如果新的盘符小于了原来的盘符
				//说明U盘已经拔出
				System.out.println("U盘已拔出");
				files = newfiles;
			}
		}
	}

	public static void main(String[] args) {

		USB();
	}

}
分享到:
评论

相关推荐

    U盘发掘者

    U盘发掘者 &lt;br/&gt; 也许有些时候你在电脑上找不到自己的U盘. 或许被隐藏了,或许是禁用了。只要你的U盘指示灯亮着 就可以用此小程序打开它. 此为共享软件。感谢使用! &lt;br/&gt; &lt;br/&gt;  &lt;br/...

    U盘(Mass Storage Device)读取过程剖析

    在本例中,计算机向U盘发送了Set_Address、Get_Device_Descriptor、Get_Configuration_Descriptor等命令,以获取U盘的基本信息。 类请求阶段是指计算机向U盘发送的类请求命令,以获取U盘的详细信息。在本例中,...

    盘发教学 50多种盘发哦,快点来学习吧!

    【盘发艺术:塑造时尚与优雅的50种方式】 盘发,作为女性发型的一种经典样式,不仅可以展现出优雅气质,还能增添时尚感。无论是日常生活、职场还是特殊场合,一款精致的盘发都能让人焕然一新,提升整体形象。本文将...

    基于单片机的嵌入式u盘控制器的设计与实现

    - **BulkOut0函数示例**:该函数用于向U盘发送数据,通过设置USB设备地址、端点类型、传输方向、载荷大小和数据长度,结合预设的数据缓冲区,完成数据的批量输出。 #### 实现意义与应用场景 通过基于单片机的...

    51单片机读写U盘例程

    2. 发送命令:根据USB Mass Storage Class协议,向U盘发送相应的命令,如 Bulk-Only Transport (BOT) 协议中的读写请求。这可能涉及到SCSI命令,如READ(10)和WRITE(10)。 3. 数据传输:在命令成功后,通过串口发送...

    STM32F103 Flash虚拟U盘

    8. **系统响应**:当主机(如电脑)通过USB接口向虚拟U盘发送读写请求时,STM32需要快速准确地响应,执行相应的Flash读写操作,并通过USB返回结果。 9. **安全性和稳定性**:在实际应用中,还需要考虑数据的完整性...

    单片机读写U盘

    5. **数据传输**:单片机通过USB接口向U盘发送读/写命令,SL811芯片将这些命令封装成USB协议的数据包,通过USB总线传输。在接收数据时,SL811会将接收到的数据解封装,传递给单片机。 6. **中断处理**:在读写过程...

    PIC+CH376读写U盘

    读取U盘数据时,PIC单片机会向CH376发送读取命令,CH376则会根据命令向U盘发送适当的USB请求,并将接收到的数据返回给单片机。写入操作类似,只是数据流向相反,单片机会将待写入的数据传递给CH376,然后由CH376完成...

    USB_OTG—开发板作USB主机读取U盘.rar

    这个过程包括了向U盘发送设备请求,获取设备描述符,识别设备类型,以及配置端点。对于读取U盘,我们需要找到数据传输的 Bulk-Endpoint,因为U盘通常使用Bulk传输来处理大量数据。 读取U盘数据时,主机通过发送IN...

    单片机读写U盘工程

    在枚举过程中,CH375会解析U盘发送的设备描述符,从而确定U盘的容量、速度等信息。 一旦U盘被成功识别,51单片机就可以通过CH375向U盘发送读写命令。读操作涉及寻址指定扇区,请求数据;写操作则需要先将数据暂存,...

    dsp5402对u盘进行文件读写

    对于文件读写,DSP5402会通过USB接口向U盘发送命令,读取或写入特定簇的数据。读文件时,根据文件的起始簇号和文件长度,依次读取FAT表中对应的簇,并将数据送至处理器内部的缓冲区。写文件则相反,先将数据存入缓冲...

    stm32f207神州开发板的读写U盘中文注释

    3. **数据传输**:在配置完成后,STM32F207可以向U盘发送读写请求。读操作通常涉及控制传输,而写操作可能使用批量传输。这里的关键是正确设置USB事务的类型、方向和数据包。 4. **中断处理**:在数据传输过程中,...

    PIC16 CH375 读写U盘

    5. **读写操作**:通过CH375驱动,向U盘发送读写命令,完成数据的存取。这包括打开文件、读取数据、写入数据、关闭文件等操作。 6. **错误处理**:在编程过程中,需要考虑到可能遇到的各种错误情况,如USB连接问题...

    VC USB编程(发送和接收数据)

    在IT领域,尤其是在嵌入式系统和设备驱动程序开发中,USB(通用串行总线)编程是一项重要的技能。"VC USB编程(发送和接收数据)"这个主题涉及到使用Microsoft Visual C++ (VC++)进行USB设备的通信。...

    晚装盘发技术手法PPT学习教案.pptx

    晚装盘发技术手法PPT学习教案.pptx

    51单片机通过CH375驱动读取U盘固定文件内容

    4. **读取文件**:知道文件路径后,通过CH375向U盘发送读取文件的命令。这通常涉及文件的偏移地址和要读取的数据长度。 5. **处理数据**:CH375将从U盘读取的数据通过SPI或I²C传回51单片机,你需要在单片机端接收...

    一个U盘换发型的工具

    在这个例子中,它是整个工具的核心,包含了所有的代码和资源,用于实现U盘发型更换的功能。 综上所述,这个工具的运作原理可能包含以下几点: 1. **图像处理**:软件内嵌图像处理算法,能够读取用户的照片,并对...

    51单片机 CH375读U盘测试程序

    4. 数据传输:一旦设备被选中并配置好,就可以通过CH375向U盘发送读写请求。读操作时,单片机会发送读命令,CH375接收到命令后,从U盘读取数据并通过串行接口返回给单片机;写操作则相反,单片机将数据发送给CH375,...

    SCSI读写命令介绍

    SCSI(Small Computer System Interface,小型计算机系统接口)是一种广泛应用于各种存储设备的数据传输协议,如硬盘、光驱、磁带机等。它提供了一种高效、可靠且灵活的I/O(输入/输出)机制,使得主机能够与外部...

    点、线、面、分区、卷杠、剪发、盘发动态图详解.ppt

    点、线、面、分区、卷杠、剪发、盘发动态图详解.ppt

Global site tag (gtag.js) - Google Analytics