標籤:ace 程式碼 資料檔案 generate 不同 clip 資料 列表 canonical
內容概述:
在實際的工程中,有時會需要儲存一些檔案,如存放一些圖片、資料檔案等,存放這些檔案時考慮將這些檔案存放在哪裡。
通常有兩種方法來擷取檔案存放路徑:
方法一,擷取系統有效盤符 如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}
java基礎--->檔案--->檔案存放路徑:絕對路徑和相對路徑