bwlab 2016-08-18 02:32 采纳率: 50%
浏览 2698
已采纳

java代码判断本地是否存在D盘

我用流操作在本地生成一个文件,但是不知道本地是否有d盘
怎么判断本地是否有d盘,
不是判断是否有这个文件,然后不存在就创建。

  • 写回答

2条回答 默认 最新

  • 泰 戈 尔 博客专家认证 2016-08-18 03:11
    关注

    这应该是关于Java识别本地硬盘方面的处理。

    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;
    /**
     * 磁盘检查
    *1、检测磁盘是本地磁盘还是可移动磁盘;
    *2、显示相应的磁盘名称,磁盘总空间以及可用的空间
     */
    
    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();
    
    
    
     }
    
    
    
    }
    
    

    希望对你有用 :-)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错