我用流操作在本地生成一个文件,但是不知道本地是否有d盘
怎么判断本地是否有d盘,
不是判断是否有这个文件,然后不存在就创建。
java代码判断本地是否存在D盘
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 这应该是关于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无用 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比较 两个集群的数据出错