導航:首頁 > 文件教程 > file獲取文件目錄

file獲取文件目錄

發布時間:2025-01-29 13:18:10

A. java怎麼獲取一個目錄下的所有文件

獲取一個目錄下的所有文件和目錄方法:

importjava.io.File;

publicclassFileTest{

publicstaticvoidmain(String[]args){
/**
*將目標目錄封裝成File對象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac應用程序");

/**
*獲取目錄下的所有文件和文件夾
*/
String[]names=dir.list();

for(Stringname:names){
System.out.println(name);
}
}

}

通過文件過濾器獲取某個目錄下的文件,例如所有的 .txt、.doc文件。

過濾器:

importjava.io.File;
importjava.io.FilenameFilter;

{

@Override
publicbooleanaccept(Filedir,Stringname){
returnname.endsWith(".doc");
}

}

獲取某個目錄下的按照過濾器規則的所有文件:

importjava.io.File;

publicclassFileTest{

publicstaticvoidmain(String[]args){
/**
*將目標目錄封裝成File對象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac應用程序");

/**
*通過過濾器獲取目錄下的所有的.doc文件
*/
String[]names=dir.list(newFilterByDoc());

for(Stringname:names){
System.out.println(name);
}
}

}

希望能對您有所幫助!

B. 怎麼獲取文件路徑和目錄

File類有兩個常用方法可以得到文件路徑一個是:getCanonicalPath(),另一個是:getAbsolutePath(),可以通過File類的實例調用這兩個方法例如file.getAbsolutePath()其中file是File的實例對象。下面是一個具體例子:
public class PathTest
{
public static void main(String[] args)
{
File file = new File(".\\src\\");
System.out.println(file.getAbsolutePath());
try
{
System.out.println(file.getCanonicalPath());
} catch (IOException e)
{
e.printStackTrace();
}
}
}
getAbsolutePath()和getCanonicalPath()的不同之處在於,getCanonicalPath()得到的是一個規范的路徑,而getAbsolutePath()是用構造File對象的路徑+當前工作目錄。例如在上面的例子中.(點號)代表當前目錄。getCanonicalPath()就會把它解析為當前目錄但是getAbsolutePath()會把它解析成為目錄名字(目錄名字是點號)。
下面是上面程序在我電腦上的輸出:
G:\xhuoj\konw\.\src\
G:\xhuoj\konw\src\

C. java中獲取文件路徑的幾種方式

獲取當前類的所在工程路徑;如果未添加「/」,則代碼如下:
File f = new File(this.getClass().getResource("").getPath());
System.out.println(f);
執行結果為:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test

獲取當前類的絕對路徑;第二種方法為:
File directory = new File("");//參數為空
String courseFile = directory.getCanonicalPath() ;
System.out.println(courseFile);
執行結果為:C:\Documents and Settings\Administrator\workspace\projectName

獲取當前類的所在工程路徑;第三種方法為:
URL xmlpath = this.getClass().getClassLoader().getResource("selected.txt");
System.out.println(xmlpath);
執行結果為:file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selected.txt

獲取當前工程src目錄下selected.txt文件的路徑;第四種方法為:
System.out.println(System.getProperty("user.dir"));
執行結果為:C:\Documents and Settings\Administrator\workspace\projectName

獲取當前工程路徑;第五種方法為:
System.out.println(System.getProperty("java.class.path"));
執行結果為:C:\Documents and Settings\Administrator\workspace\projectName\bin

以上介紹了五種獲取文件路徑的方法,每種方法都有其特點和適用場景。第一種方法適用於需要獲取類所在目錄的路徑,但結果包含bin文件夾;第二種方法適用於獲取文件系統中的絕對路徑;第三種方法適用於獲取類載入器資源的URL路徑,結果包含文件協議;第四種方法獲取當前工作目錄,即工程根目錄;第五種方法獲取類路徑,通常指向編譯後的類文件所在的目錄。

在實際開發中,根據具體需求選擇合適的方法。例如,如果需要獲取源代碼文件的路徑,可以使用第三種方法;如果需要獲取編譯後的類文件路徑,則使用第五種方法更為合適。

需要注意的是,路徑格式在Windows和Linux系統中可能存在差異,因此在跨平台項目中應謹慎使用這些方法。同時,建議在編寫代碼時考慮路徑的可讀性和安全性,避免硬編碼路徑。

在處理文件路徑時,務必考慮文件系統的限制和特殊字元,確保路徑的正確性和兼容性。此外,對於敏感文件和目錄,應採取適當的訪問控制措施,以防止意外訪問或修改。

D. 文件存在file找不到

文件存在file找不到(文件存在file找不到文件)File (不是訪問文件數據的)
每一個實例可以表示硬碟(文件系統)中的一個文件或目錄(實際上表示的是一個抽象路徑)主要是JAVA為文件這塊的操作(如創建、刪除、新增等)而設計的相關類包名是java.io,其實現了Serializable, Comparable兩大介面以便於其對象可序列化和比較。
// File file = new File("c:/xxx/xxx/xx/xxx.txt"); //-----絕對路徑不推薦使用名詞解釋1)相對路徑顧名思義,相對路徑就是相對於當前文件的路徑。開發中一般表示路徑使用這個方法。2)絕對路徑 絕對路徑就是你的電腦上的文件或目錄在硬碟上真正的路徑。 //使用File訪問當前項目目錄下的demo.txt文件File file = new File("./demo.txt");//獲取文件名字String name = file.getName();System.out.println(name);//獲取文件大小(單位是位元組)long len = file.length();System.out.println(len+"位元組");//是否可讀可寫boolean cr = file.canRead();boolean cw = file.canWrite();System.out.println("是否可讀:"+cr);System.out.println("是否可寫:"+cw);//是否隱藏文件boolean ih = file.isHidden();System.out.println("是否隱藏:"+ih);createNewFile()方法 創建新文件//在當前目錄下新建一個文件:test.txtFile file = new File("./test.txt");//boolean exists()判斷當前File表示的位置是否已經實際存在該文件或目錄if(file.exists()){ System.out.println("該文件已存在!");}else{ file.createNewFile();//將File表示的文件創建出來 System.out.println("文件已創建!");}delete()方法 文件刪除File file = new File("test.txt");//同屬於一個文件夾,可以不寫 "./"if(file.exists()){ file.delete(); //刪除文件 System.out.println("文件已刪除!");}else{ System.out.println("文件不存在!");}mkDir()、mkDirs(): 創建目錄//在當前目錄下新建一個目錄:demo// File dir = new File("demo");File dir = new File("./a/b/c/d/e/f");if(dir.exists()){ System.out.println("該目錄已存在!");}else{ //dir.mkdir();//創建目錄時要求所在的目錄必須存在 ,所以一般不用 dir.mkdirs();//創建目錄時會將路徑上所有不存在的目錄一同創建 System.out.println("目錄已創建!");}delete() 刪除一個目錄,但是只能刪除空目錄 //將當前目錄下的demo目錄刪除File dir = new File("demo");// File dir = new File("a");if(dir.exists()){ dir.delete();//delete方法刪除目錄時只能刪除空目錄 System.out.println("目錄已刪除!");}else{ System.out.println("目錄不存在!");}listFiles方法 可以訪問一個目錄中的所有子項//獲取當前目錄中的所有子項File dir = new File(".");/* boolean isFile() 判斷當前File表示的是否為一個文件 boolean isDirectory() 判斷當前File表示的是否為一個目錄 */if(dir.isDirectory()){ /* File[] listFiles() 將當前目錄中的所有子項返回。返回的數組中每個File實例表示其中的一個子項 */ File[] subs = dir.listFiles(); System.out.println("當前目錄包含"+subs.length+"個子項"); for(int i=0;i<subs.length;i++){ File sub = subs[i]; System.out.println(sub.getName()); }}重載的 listFiles方法: 有參的//該方法要求傳入一個文件過濾器,並僅將滿足該過濾器要求的子項返回。File dir = new File(".");if(dir.isDirectory()){ File[] subs = dir.listFiles(new FileFilter(){ public boolean accept(File file) { return file.getName().startsWith("."); }});System.out.println(subs.length);Lambda表達式:
JDK8之後,java支持了lambda表達式這個特性.可以用更精簡的代碼創建匿名內部類.但是該匿名內部類實現的介面只能有一個抽象方法,否則無法使用!是編譯器認可的,最終會將其改為內部類編譯到class文件中
Lambda特徵:
可選類型聲明:不需要聲明參數類型,編譯器可以統一識別參數值。可選的參數圓括弧:一個參數無需定義圓括弧,但多個參數需要定義圓括弧。可選的大括弧:如果主體包含了一個語句,就不需要使用大括弧。可選的返回關鍵字:如果主體只有一個表達式返回值則編譯器會自動返回值,大括弧需要指定表達式返回了一個數值。
// 語法(參數列表) ->{ 方法體} //匿名內部類形式創建FileFilter ---- ①FileFilter filter = new FileFilter() { public boolean accept(File file) { return file.getName().startsWith("."); }};//lambda 寫法 寫① 的匿名內部類創建 FileFilter ---- ②FileFilter filter2 = (File file)->{ return file.getName().startsWith(".");};//lambda表達式中參數的類型可以忽略不寫 lambda 再次簡化②的版本----③FileFilter filter3 = (file)->{ return file.getName().startsWith(".");};/* lambda表達式方法體中若只有一句代碼,則{}可以省略 如果這句話有return關鍵字,那麼return也要一並省略! ------基於③ 再次簡化的寫法版本*/FileFilter filter4 = (file)->file.getName().startsWith("."); 學習記錄,如有侵權請聯系刪除。

E. android怎樣拿到file的路徑

Environment 常用方法:
* 方法:getDataDirectory()
解釋:返回 File ,獲取 Android
數據目錄。
* 方法:getDownloadCacheDirectory()
解釋:返回 File ,獲取 Android
下載/緩存內容目錄。
* 方法:getExternalStorageDirectory()
解釋:返回 File ,獲取外部存儲目錄即
SDCard
* 方法:(String type)
解釋:返回 File
,取一個高端的公用的外部存儲器目錄來擺放某些類型的文件
* 方法:getExternalStorageState()
解釋:返回 File
,獲取外部存儲設備的當前狀態
* 方法:getRootDirectory()

解釋:返回 File ,獲取 Android 的根目錄

file的getPath getAbsolutePath和getCanonicalPath的不同

File的這三個方法在api中都有說明,僅以程序為例說明。

package test;

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

public class TestFilePath
{

public static void main(String[] args) {
// TODO Auto-generated
methodstub

System.out.println(System.getProperty("user.dir"));

try
{
System.out.println("-----默認相對路徑:取得路徑不同------");
File file1 =new
File("..\\src\\test1.txt");
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getCanonicalPath());
System.out.println("-----默認相對路徑:取得路徑不同------");
File
file =new
File(".\\test1.txt");
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());

System.out.println("-----默認絕對路徑:取得路徑相同------");
File
file2 =new
File("D:\\workspace\\test\\test1.txt");
System.out.println(file2.getPath());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getCanonicalPath());
}
catch (IOException e) {
// TODOAuto-generated catch
block
e.printStackTrace();
}
}

}

程序執行結果如下:

F:\eclipseworkspace\testejb
-----默認相對路徑:取得路徑不同------
..\src\test1.txt
F:\eclipseworkspace\testejb\..\src\test1.txt
F:\eclipseworkspace\src\test1.txt
-----默認相對路徑:取得路徑不同------
.\test1.txt
F:\eclipseworkspace\testejb\.\test1.txt
F:\eclipseworkspace\testejb\test1.txt
-----默認絕對路徑:取得路徑相同------
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
結論:

當輸入為絕對路徑時,返回的都是絕對路徑。

當輸入為相對路徑時:

getPath()返回的是File構造方法里的路徑,是什麼就是什麼,不增不減

getAbsolutePath()返回的其實是user.dir+getPath()的內容,從上面F:\eclipseworkspace\testejb、F:\eclipseworkspace\testejb\..\src\test1.txt、F:\eclipseworkspace\testejb\.\test1.txt可以得出。
getCanonicalPath()返回的就是標準的將符號完全解析的路徑

public String
getAbsolutePath()返回抽象路徑名的絕對路徑名字元串。
如果此抽象路徑名已經是絕對路徑名,則返回該路徑名字元串,這與 getPath()
方法一樣。如果此抽象路徑名是空的抽象路徑名,則返回當前用戶目錄的路徑名字元串,該目錄由系統屬性 user.dir
指定。否則,使用與系統有關的方式分析此路徑名。在 UNIX 系統上,通過根據當前用戶目錄分析某一相對路徑名,可使該路徑名成為絕對路徑名。在 Microsoft
Windows
系統上,通過由路徑名指定的當前驅動器目錄(如果有)來分析某一相對路徑名,可使該路徑名成為絕對路徑名;否則,可以根據當前用戶目錄來分析它。

返回:
絕對路徑名字元串,它與此抽象路徑名表示相同的文件或目錄的
拋出:
SecurityException
- 如果無法訪問所需的系統屬性值。
另請參見:
isAbsolute()

public String getCanonicalPath()
throws
IOException返回抽象路徑名的規范路徑名字元串。
規范路徑名是絕對路徑名,並且是惟一的。規范路徑名的准確定義與系統有關。如有必要,此方法首先將路徑名轉換成絕對路徑名,這與調用
getAbsolutePath() 方法的效果一樣,然後用與系統相關的方式將它映射到其惟一路徑名。這通常涉及到從路徑名中移除多餘的名稱(比如 "." 和
"..")、分析符號連接(對於 UNIX 平台),以及將驅動器名轉換成標准大小寫形式(對於 Microsoft Windows
平台)。

表示現有文件或目錄的每個路徑名都有一個惟一的規范形式。表示非存在文件或目錄的每個路徑名也有一個惟一的規范形式。非存在文件或目錄路徑名的規范形式可能不同於創建文件或目錄之後同一路徑名的規范形式。同樣,現有文件或目錄路徑名的規范形式可能不同於刪除文件或目錄之後同一路徑名的規范形式。

返回:
表示與此抽象路徑名相同的文件或目錄的規范路徑名字元串
拋出:
IOException
- 如果發生 I/O 錯誤(可能是因為構造規范路徑名需要進行文件系統查詢)
SecurityException -
如果無法訪問所需的系統屬性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor)
方法拒絕對該文件進行讀取訪問
從以下版本開始:
JDK1.1

F. javascript 中怎樣獲取file里的完整路徑,如:D:\E\1.jpg

樓主問的應該是獲取一個file input表單域的文件名全路徑吧,這是不能實現的,除非在IE6下面。這個已經因為安全問題被現代所有瀏覽器屏蔽了,只能獲取到文件名

G. file://是什麼意思

一、含義

1、IT中的File,本地文件傳輸協議,File協議主要用於訪問本地計算機中的文件,就如同在Windows資源管理器中打開文件一樣。

2、INUX 命令File,file 命令讀取用 File 參數或者 FileList 變數指定的文件,在每個文件上執行一系列測試,然後將它們按照類型分類。

3、要使用File協議,基本的格式如下:file:///文件路徑,比如要打開F:盤flash文件夾中的1.swf文件,那麼可以在資源管理器或IE地址欄中鍵入:file:///f:/flash/1.swf並回車。

4、然後此命令將文件類型寫入標准輸出。文件可以是常規文件、目錄、FIFO(指定的管道)、塊特殊文件、字元特別文件、符號鏈接或者套接字類型。在漫畫中也指"話"

二、英語解釋

1、英語單詞File,有文件夾,公文箱,把…歸檔等意思。

2、vt.提出(離婚訴訟或其他訟案);把……歸檔;用銼銼;發稿,寄給報社。

3、vi.發送(報道給報社);排成一行行走;提出申請。

4、n.文件夾;卷宗;縱列。

閱讀全文

與file獲取文件目錄相關的資料

熱點內容
u盤文件給刪了 瀏覽:737
vuejsoauth2 瀏覽:78
2017微信支付日 瀏覽:81
機械臂編程如何開發 瀏覽:21
標書U盤PDF文件要不要簽字 瀏覽:222
ps軟體文件復制到d盤 瀏覽:148
一般工業固廢招標文件內容 瀏覽:583
網站建設報價怎麼算 瀏覽:66
三星a7000升級安卓502 瀏覽:486
word2010清除分隔符 瀏覽:781
樂視怎麼切換網路 瀏覽:425
cad列印pdf文件名稱與cad不一致 瀏覽:815
電氣與可編程式控制制是什麼 瀏覽:67
文件名中允許使用英文豎線嗎 瀏覽:531
編程貓在哪裡 瀏覽:775
win8共享文件夾訪問許可權 瀏覽:380
cad文件顯示為只讀不能保存怎麼辦 瀏覽:703
如何在系統里忘記網路 瀏覽:24
中小企業出口數據在哪裡找 瀏覽:715
win8和xp傳文件 瀏覽:75

友情鏈接