Android:如何从Uri获取任何文件的真实路径

时间:2018-04-08 05:38:31

标签: android kotlin

我想要uri文件类型的真实路径任何,我有一个图像文件的代码,但它不适用于我想要的。

我想要的文件是CSV文件:

private fun getRealPathFromURI(contentURI: Uri, context: Context): String {
            val result: String
            val cursor = context.contentResolver.query(contentURI, null, null, null, null)
            if (cursor == null) { // Source is Dropbox or other similar local file path
                result = contentURI.path
            } else {
                cursor.moveToFirst()
                val idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA)
                result = cursor.getString(idx)
                cursor.close()
            }
            return result
        }

修改 解决:

//On recupere le chemin du fichier ou manuellement ou par un picker
        val path = data.data

        //On ouvre le fichier du chemin
        val `is` = context.contentResolver.openInputStream(path)

        //Puis on le lis
        val reader = BufferedReader(InputStreamReader(`is`))

1 个答案:

答案 0 :(得分:1)

public String getRealPathFromURI(Context context, Uri contentUri) {
    String[] proj = {MediaStore.Images.Media.DATA};
    CursorLoader loader = new CursorLoader(context, contentUri, proj, null, null, null);
    Cursor cursor = loader.loadInBackground();
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    String result = cursor.getString(column_index);
    cursor.close();
    return result;
}