2014-01-20 91 views
0
boolean flag = new 
File("C:/Users/Username/somefolder/.../somefolder/somename.ogg").isFile(); 

System.out.println("isFile: " + flag); 

返回:新文件識別爲文件夾

isFile: false 

我想顯示爲文件。 我在做什麼錯?

+0

如果isFile = true,那麼它是一個文件。 – Samhain

+1

我覺得你在這裏迷惑自己。你想要一個文件,它是一個文件,它說它是一個文件...哪一部分讓你認爲它被識別爲一個文件夾? – csmckelvey

+0

對不起,返回false,我的失敗。 – Dementor

回答

5

的文件需要存在isFile返回true

從API文檔:

返回:

真當且僅當此抽象路徑名 表示的文件存在,是一個正常的文件;否則爲false

+0

你可以通過調用['File#createNewFile()']來創建一個新文件(http://docs.oracle.com/javase/7/docs/api/java/io/File.html%23createNewFile%28%29 )(也就是使文件存在) – Justin

+0

對不起,非常感謝你,有一個口音是問題的路線。 – Dementor

0

關於File#isFile()

返回:

true當且僅當此抽象路徑名錶示的文件存在且是一個正常的文件; false否則

0

文件路徑看起來像你試圖從Windows機器獲取文件。對於Java,您需要正確表示並轉義路徑分隔符。請嘗試以下操作:

boolean flag = new File("C:\\Users\\Username\\somefolder\\somefolder\\somefolder\\somefoldersomefolder\\somefolder\\somefolder\\somename.ogg").isFile(); 

另外,如果您使用的是Java 7及更高版本,則可能需要查看Path類。 http://docs.oracle.com/javase/tutorial/essential/io/pathClass.html