`
shenjichao2009
  • 浏览: 96372 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

获取磁盘(本地磁盘和移动磁盘)信息的Java代码

    博客分类:
  • Java
阅读更多

/**
*
*/
package com.duoguo.usb;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.swing.filechooser.FileSystemView;

import org.apache.log4j.Logger;

import com.duoguo.Service.SocketServer;
import com.duoguo.Service.po.ReturnPo;
import com.duoguo.usb.po.UsbPo;

/**
* 磁盘检查 1、检测磁盘是本地磁盘还是可移动磁盘; 2、显示相应的磁盘名称,磁盘总空间以及可用的空间
*
* @author shyboy(897948924@qq.com)
*
*/
public class DiskTest {

private static Logger logger = Logger.getLogger(DiskTest.class);
private static final int methodId = 1;

private final static String localDiskName = "本地磁盘";
private final static String removableDiskName = "可移动磁盘";

private final static String enLocalDiskName = "Local Disk";
private final static String enRemovableDiskName = "Removable Disk";

/**
* 获取磁盘信息
*
* @return Map<String,ReturnPo>
*/
public static Map<String, ReturnPo> getDiskInfo() {

List<UsbPo> list = new ArrayList<UsbPo>();
ReturnPo returnPo = new ReturnPo();
Map<String, ReturnPo> map = new HashMap<String, ReturnPo>();

FileSystemView fileSystemView = FileSystemView.getFileSystemView();// 获取FileSystemView对象
double unit = 1024 * 1024 * 1024;
File[] roots = File.listRoots();
for (File file : roots) {

UsbPo usbPo = new UsbPo();
String pathName = file.getPath();// 获取磁盘的路径名称
usbPo.setName(pathName);

String diskName = fileSystemView.getSystemTypeDescription(file);// 获取磁盘的类型描述信息
if (diskName.startsWith(localDiskName)
|| diskName.startsWith(enLocalDiskName))// 当磁盘为本地磁盘时
{
usbPo.setFlag(0);
} else if (diskName.startsWith(removableDiskName)
|| diskName.startsWith(enRemovableDiskName))// 当磁盘为可移动磁盘时
{
usbPo.setFlag(1);
}

long usableSpace = file.getUsableSpace();// 获取磁盘的可用空间
usbPo.setUsableSize(usableSpace / unit);

long totalSpace = file.getTotalSpace();// 获取磁盘的总空间
usbPo.setTotalSize(totalSpace / unit);

System.out.println("磁盘名称为:" + diskName + pathName);
System.out.println("总空间为:" + usbPo.getTotalSize() + "GB");
System.out.println("可用空间为:" + usbPo.getUsableSize() + "GB");

list.add(usbPo);

}

returnPo.setMethodId(methodId);
returnPo.setExcept(null);
returnPo.setResultFlag(true);
returnPo.setResultInfo(list);

logger.info(returnPo.getResultInfo());

map.put(SocketServer.resultInfo, returnPo);
return map;

}

/**
* @param args
*/
public static void main(String[] args) {

DiskTest.getDiskInfo();

}

}

分享到:
评论

相关推荐

    能查找到本地所有的驱动器,获取磁盘信息

    这段代码会打印出所有驱动器的名称(如"C:")、驱动器类型(如"固定磁盘"、"可移动磁盘"、"CD-ROM")、总容量和可用空间。值得注意的是,驱动器的图标信息并不直接包含在`DriveInfo`对象中,通常需要额外的系统调...

    java磁盘调度

    在上述Java代码中,`DiskManage`类是主程序,它负责获取用户输入并根据用户选择调用不同的调度算法。`CSCAN`类用于实现循环扫描算法,而`SSTF`和`SCAN`类分别对应各自的算法实现。这些类通常包含处理请求、计算寻道...

    获取磁盘驱动器文件系统名称的资源

    在计算机操作系统中,获取磁盘驱动器的文件系统名称是一项重要的任务,这通常涉及到系统管理、数据存储和安全性的考量。文件系统是管理和组织磁盘上数据的一种方式,包括文件的创建、删除、读取和写入等操作。不同的...

    DiskLruCache磁盘缓存java源码

    - **获取**:获取操作首先读取键和大小信息,如果缓存项存在且未过期,则读取数据文件内容返回。 - **更新**:更新操作会更新访问时间,如果需要,也会更新数据文件。 - **删除**:删除操作会直接删除对应的子...

    dotnet C# 获取当前设备可移动磁盘.rar

    总之,通过学习和理解如何使用C#和WMI API,开发者可以轻松地获取和操作系统中的可移动磁盘信息,这对于开发涉及硬件交互的软件是非常有用的。这个教程或案例研究对于初学者和有经验的开发者来说都是一个宝贵的资源...

    JAVA实现文件移动

    根据给定的信息,我们可以总结出以下关于“Java实现文件移动”...通过以上内容,我们可以了解到Java实现文件移动的基本原理和技术要点,包括使用的类库、关键步骤以及示例代码等。这对于理解和实践文件操作非常有帮助。

    java源码包---java 源码 大量 实例

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java代码模拟CPU

    为了深入了解和实现这个项目,可以查看该文件以获取具体细节和代码实现。通过这个模拟器,你可以亲身体验到CPU如何执行指令、管理内存以及与外部设备交互的过程,这对于深入理解计算机科学至关重要。

    java的io操作源代码

    本代码库包含了Java进行基本IO操作的源代码,涵盖了文件的复制、删除、新建和移动等功能,非常适合初学者理解和实践。 首先,我们来探讨一下Java IO操作的基本概念。在Java中,IO操作基于流(Stream)的概念,流是...

    读取硬盘信息源代码

    机械硬盘基于旋转磁盘和移动读写头,而固态硬盘则采用闪存颗粒进行数据存储,速度更快且无机械运动部件。 硬盘的信息主要包括硬盘的型号、序列号、容量、分区信息、SMART(Self-Monitoring, Analysis, and ...

    javaIO代码

    Java 7引入了更强大的文件系统操作API,如 `Files` 类提供了创建、删除、移动文件及获取文件属性的便捷方法,`Path` 类代表文件系统中的路径。 Java IO代码通常涉及上述概念的组合应用,例如,从文件读取数据,...

    操作系统 磁盘调度算法 java版.pdf

    在提供的Java代码中,`F_Disc_Dispatch`类包含了上述算法的实现。`input()`方法负责获取用户输入,`FCFS()`, `SSTF()`, `SCAN()`, `CSCAN()`分别对应四种算法的处理逻辑。通过控制台输入和输出,程序能够模拟并展示...

    java磁盘调度版本.pdf

    在Java编程语言中,这个程序实现了一个简单的磁盘调度模拟器,用于演示和比较不同的磁盘调度算法。磁盘调度是操作系统中一个重要的概念,它决定了磁头如何在磁盘表面移动以服务到来的I/O请求。以下是程序中涉及的...

    java处理各种文件代码

    Java提供了丰富的API来支持文件操作,这使得开发者能够高效地读取、写入、移动、复制和删除文件。本篇将深入探讨Java中处理文件的相关知识点。 1. **文件I/O流**:Java中的`java.io`包提供了许多类来处理文件I/O...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java源码包3

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包2

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    基于JAVA文件上传

    使用FileUpload,我们可以轻松地从请求中获取文件名、文件大小和文件内容。 5. **临时文件存储**:文件上传后,服务器通常会将其暂存到一个临时目录,以便后续处理,如验证文件类型、大小限制等。Java的`java.io`包...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics