2013-02-08 56 views
0

這是我的代碼來創建一個文件對象。我相信該文件是存在的。但文件length()返回0,exists()也返回false。爲什麼Android無法將文件讀取到File對象?

File uploadFile = new File(Environment.getExternalStorageDirectory() + "/DCIM/DSC00050.jpg"); 
int totalSize = (int) uploadFile.length(); // Get size of file, bytes 

回答

0

如果exists()返回false表示文件不存在或不可訪問。確保安裝了SD卡並確保您的應用程序具有足夠的權限,即READ_EXTERNAL_STORAGE。我懷疑這是問題,因爲你應該在這種情況下得到例外。

另一件事是記錄絕對文件路徑uploadFile.getAbsolutePath()並確保它是正確的。

編輯:

你確定你的形象是直接DCIM文件夾不DCIM/Camera下?使用Android中的任何文件瀏覽器並檢查文件完整路徑。我在代碼中看不到任何其他問題。

+0

如果路徑Environment.getExternalStorageDirectory()+創建文件 「/ DCIM /」 而已,存在()是真實和長度()不零。 當我將路徑更改爲文件而不僅僅是文件夾時,結果將爲false併爲零。 我確定該文件存在 –

+0

您確定* DCIM *文件夾下的文件*存在*不在另一個子文件夾下嗎? – iTech

0

寫完後File uploadFile = new File(...);它不會創建文件本身。

AFAIK If File.exists() is returning false, then file just doesn't exist yet.

,但肯定可以通過調用file.createNewFile()

相關問題