中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java讀取磁盤并遍歷磁盤文件過程解析

發布時間:2020-08-19 18:04:17 來源:腳本之家 閱讀:136 作者:冰湖一角 欄目:編程語言

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");
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.println(result);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克拉玛依市| 小金县| 荣昌县| 雷州市| 三门峡市| 浮梁县| 玉山县| 信丰县| 黑河市| 桦南县| 曲松县| 冷水江市| 白山市| 龙井市| 延吉市| 宕昌县| 德清县| 横山县| 龙海市| 奉节县| 荃湾区| 蚌埠市| 博兴县| 潞西市| 银川市| 遵化市| 普宁市| 桂平市| 肥城市| 湘潭市| 开封市| 宿松县| 安图县| 白沙| 曲靖市| 西峡县| 罗田县| 铜山县| 新巴尔虎右旗| 舞钢市| 竹北市|