[英]Create file from Uri exception occurs
從Uri創建文件時發生異常。 exception的值顯示為null。
try {
File mFile = new File(new URI(mediaUri.toString()));
data = readFile(mFile);
} catch (Exception e) {
Log.e("Error", e.getLocalizedMessage());
}
請幫忙
提前致謝。
問題是從uri創建文件時
文件mFile =新文件(新URI(mediaUri.toString()));
mediaUri.toString()並未從中返回視頻文件的正確路徑以獲取視頻文件的正確路徑
File mFile = new File(new URI(getRealPathFromURI(contentUri));
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Video.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
從給定的Uri提取視頻文件路徑時,此答案是userfull
問題在於,uri.toString()生成設備字符串(文件:)和路徑本身。 您應該改用uri.getPath()。 返回的不是Path,而是String。 開始時可能帶有額外的/或\\。 您應該放開它,以便它在所有系統上都可以使用。 正確且獨立於操作系統的行將是:
File mFile = new File(new Path(mediaUri.getPath()).toString);
在Win,Mac,Linux上可以在我們的項目上工作。
有幾件事可能是錯誤的。
首先,mediaUri可以為null
其次,readFile是您自己的方法(我想是),那么您應該發布該方法或在readFile中進行嘗試/捕獲。
原因是這樣的。 如果要按您的代碼進行操作,您正在創建一個不應包含任何數據的新文件,那么將readFile用於什么呢? 如果文件存在,並且mediaUri不為null,則null異常來自您的readFile方法。
您應該檢查mediaURI是否已更正文件路徑,我想它不是已更正文件路徑。
您能再解釋一下嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.