• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java读取磁盘并遍历磁盘文件过程解析

java 搞代码 4年前 (2022-01-05) 18次浏览 已收录 0个评论

这篇文章主要介绍了java读取磁盘并遍历磁盘文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1. 获取本机所有盘符信息

 //1. 获取本机盘符 File[] roots = File.listRoots(); for (int i = 0; i <roots.length; i++) { System.out.print(roots[i].getPath()+"; ");//磁盘路径 System.out.print(roots[i].getTotalSpace()/1024/1024/1024+"; ");//磁盘总空间大小 System.out.print(roots[i].getUsableSpace()/1024/1024/1024+"; ");//剩余磁盘空间大小 System.out.println(roots[i].getFreeSpace()/1024/1024/1024);//剩余磁盘空间大小 }

默认获取磁盘空间单位是BT,操作系统是这样算的 1G=1024MB, 1MB=1024KB, 1KB=1024BT

以上运行结果如下:

 C:\; 119; 71; 71 D:\; 299; 233; 233 E:\; 309; 308; 308 F:\; 321; 320; 320 W:\; 588; 358; 358

其中W盘为网盘。

2. 仅获取本地磁盘(除去网络磁盘等)

 File[] roots = File.listRoots(); FileSystemView sys = FileSystemView.getFileSystemView(); for (int i = 0; i <roots.length; i++) { if(!sys.getSystemTypeDescription(roots[i]).equals("本地磁盘")){ continue; } System.out.println(roots[i].getPath());// 磁盘路径 }

输出结果:

 C:\ D:\ E:\ F:\

3.在某一磁盘新建文件

 File file = new File("F:\\test\\a\\b"); if (!file.exists()) { file.mkdirs();// 目录不存在,创建根目录 }

4. 遍历某一个盘符的文件

 File file = new File("E:\\"); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); System.out.println(file.getTotalSpace()/1024/1024/1024);// b-kb-M-G if (file.isAbsolute()) { // 判断是否为根目录 File[] list = file.listFiles(); // 使用数组接收带有完整路径的文件夹 for (int i = 0; i <list.length; i++) { System.out.println(list[i].getPath()); System.out.println(list[i].getTotalSpace());  System.out.println(dateFormat.format(list[i].lastModified())); } }

5.遍历某一文件夹下的文件

 File file = new File("F:\\test"); getAllFilePath(file); public static void getAllFilePath(File dir){ File[] files=dir.listFiles(); for(int i=0;i<files.length;i++){ if(files[i].isDirectory()){ System.out.println(files[i].getPath()); //这里面用了递归的算法 getAllFilePath(files[i]); } else { System.out.println(files[i].getPath()); } } }

输入结果:

 F:\test\a F:\test\a\b

6. 获取某一个盘符或文件夹下的所有文件的大小

 File file = new File("F:\\test"); getAllFileSize(file); public static long getAllFileSize(File dir){ File[] files=dir.listFiles(); for(int i=0;i<files.length;i++){ if(files[i].isDirectory()){ //这里面用了递归的算法 getAllFileSize(files[i]); } else { sum+=files[i].length(); System.out.println(files[i]+"的大小:"+files[i].length()); } } return sum; }

7. 保存文件

 File filePath = new File("D:\\11.png-600"); String fileToday = DateUtils.formatTimeYMD(new Date()); //创建目录rootPath String rootPath = "E:/fileUpload/"+fileToday+"/"; File file = new File(rootPath); if (!file.exists()) { file.mkdirs();//目录不存在,创建根目录 } String picPath = getPath(rootPath, "videoFile"); saveFile(picPath, filePath); private static boolean saveFile(String path,File uploadFile) { //Files.copy(source, out);//可以直接用这个方法保存 int bufferSize = 8192;//8kb //写文件 try { File f = new File(path+"/", uploadFile.getName()); if (!f.exists()) { f.createNewFile(); } InputStream in = new BufferedInputStream(new FileInputStream(uploadFile),bufferSize); OutputStream out =new BufferedOutputStream(new FileOutputStream(f),bufferSize) ; byte[] buffer = new byte[bufferSize]; int len = 0; while ((len = in.read(buffer)) >0) { out.write(buffer,0,len); } out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); return false; } return true; }

如果不需要推送进度的话,可以直接调用Files.copy(source, out)方法进行复制文件。

8. 删除文件

 File filePath = new File("D:/home/logs/backupsystem_error.log"); boolean result = filePath.delete();//true表示删除成功 System.out.pri<strong style="color:transparent">来源gao@daima#com搞(%代@#码网</strong>ntln(result);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是java读取磁盘并遍历磁盘文件过程解析的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java读取磁盘并遍历磁盘文件过程解析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址