首页 > 解决方案 > 文件不存在 (Android)

问题描述

我有一个代码,用户在其中选择一个文件,程序返回android.net.Uri所选文件。接下来,程序转换Urijava.io.File. 当我调用File.exists()程序时返回false。为什么程序不能与现有文件交互?

(例如,我1.pdf在我的 microsd 卡上选择,但如果我从内部存储中选择任何其他文件,结果将是相同的)

public void onClick(View v) {
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("application/pdf");

    startActivityForResult(intent, 123);
}

@Override
public void onActivityResult(int requestCode, int resultCode,
                             Intent resultData) {
    super.onActivityResult(requestCode, resultCode, resultData);
    if (requestCode == 123
            && resultCode == Activity.RESULT_OK) {

        if (resultData != null) {
            Uri uri = resultData.getData();
            try {
                File f=new File(uri.getPath());

                Log.e(TAG,"File object "+f.getAbsolutePath()); //returns /document/9016-4EF8:1.pdf
                Log.e(TAG,"File exists "+f.exists()); //returns false

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

标签: androidfilesystemsandroid-contentproviderstorage-access-framework

解决方案


推荐阅读