java基礎--->文件操作--->實例---->文件存放路徑:絕對路徑和相對路徑


內容概述:

  在實際的工程中,有時會需要存儲一些文件,如存放一些圖片、數據文件等,存放這些文件時考慮將這些文件存放在哪里。

  通常有兩種方法來獲取文件存放路徑:

    方法一,獲取系統有效盤符  如D:/,然后進行路徑擴展,將擴展后的路徑作為存放這些文件的根路徑。這種方法有一個缺點,那就是在不同的操作系統中進行程序遷移時,會很麻煩;

    方法二,獲取當前文件夾(即程序工程目錄)如d:/projectName,然后進行路徑擴展,將擴展后的路徑作為存放這些文件的根路徑。最終存放程序文件的目錄和程序代碼目錄在同一個文件夾下。這種方法是更為常用的方法,使用這種方法編寫的程序更易於在不同操作系統中遷移,也方便與程序的管理,如程序卸載時,刪除整個程序文件夾可以保證程序數據也被清理掉,而使用“方法一”編寫的程序則不能保證將程序數據文件刪除掉,需要使用者手動尋找到該程序的數據文件的存放路徑,然后手動刪除。

  下面的代碼舉例說明了上述兩種方法的java編程實現:

/**
 * @author lxrm
 * @date 20161115
 * @description 不同計算機的系統盤符是不相同的,有的計算機有“C:” "D:" "E:" "F:"
 *                 但是有些計算機只有C盤和D盤,還有Linux系統中系統盤符是/home等
 *                 本程序舉例說明如何獲取本地計算機中的有效盤符
 * */
package file_operation;

import java.io.File;
import java.io.IOException;

public class Example8_getEffectiveDisks {
    public static void main(String[] args){
/*一、獲取本機有效盤符,C: D: E: ...
 *   這是獲取絕對可用路徑的方法(不常用),一般使用“二”中所描述的獲取相對路徑的方法來存放想要存放的數據、文件..
 */
        File[] roots=File.listRoots();
        System.out.println("本地計算機的有效盤符有:");
        for(int i=0;i<roots.length;i++){
            System.out.println(roots[i].getAbsolutePath());
        }
        
        String rootPath=roots[1].getAbsolutePath();//選定上述列表中最后一個磁盤作為下面所要使用的根目錄
        String path=rootPath+"/LeapMotionData/FrameData";//Frame對象數據的存放目錄
        System.out.println("LeapMotion采樣所得數據將會被放置在以下目錄中:\n"+path);
        File dir=new File(path);
        if(!dir.exists()){
            dir.mkdirs();
        }
        System.out.println(dir.getAbsolutePath()+"是否存在:"+dir.exists());
/*二、獲取當前文件夾
*   這是獲取相對路徑的方法(常用),便於程序在不同的計算機OS中遷移
*   獲得當前工程所在文件夾,如本例中是D:\workspaceOfJavaEclipse\javaTest
*/
        File root2=new File(".");//獲得當前文件夾(即工程目錄),結果D:\workspaceOfJavaEclipse\javaTest
        //File root2=new File("..");//獲得當前文件夾的父文件夾,結果D:\workspaceOfJavaEclipse
        try {
            String rootDir2=root2.getCanonicalPath();
            System.out.println("當前工程所在文件夾:"+rootDir2);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }//end main

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM