我用流操作在本地生成一个文件,但是不知道本地是否有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
悬赏问题
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)